31
31
import org .apache .flink .runtime .state .internal .InternalKvState ;
32
32
import org .apache .flink .runtime .state .metrics .LatencyTrackingStateConfig ;
33
33
import org .apache .flink .runtime .state .metrics .LatencyTrackingStateFactory ;
34
+ import org .apache .flink .runtime .state .metrics .SizeTrackingStateConfig ;
34
35
import org .apache .flink .runtime .state .ttl .TtlStateFactory ;
35
36
import org .apache .flink .runtime .state .ttl .TtlTimeProvider ;
36
37
import org .apache .flink .util .IOUtils ;
@@ -93,6 +94,8 @@ public abstract class AbstractKeyedStateBackend<K>
93
94
94
95
protected final LatencyTrackingStateConfig latencyTrackingStateConfig ;
95
96
97
+ protected final SizeTrackingStateConfig sizeTrackingStateConfig ;
98
+
96
99
/** Decorates the input and output streams to write key-groups compressed. */
97
100
protected final StreamCompressionDecorator keyGroupCompressionDecorator ;
98
101
@@ -106,6 +109,7 @@ public AbstractKeyedStateBackend(
106
109
ExecutionConfig executionConfig ,
107
110
TtlTimeProvider ttlTimeProvider ,
108
111
LatencyTrackingStateConfig latencyTrackingStateConfig ,
112
+ SizeTrackingStateConfig sizeTrackingStateConfig ,
109
113
CloseableRegistry cancelStreamRegistry ,
110
114
InternalKeyContext <K > keyContext ) {
111
115
this (
@@ -115,6 +119,7 @@ public AbstractKeyedStateBackend(
115
119
executionConfig ,
116
120
ttlTimeProvider ,
117
121
latencyTrackingStateConfig ,
122
+ sizeTrackingStateConfig ,
118
123
cancelStreamRegistry ,
119
124
determineStreamCompression (executionConfig ),
120
125
keyContext );
@@ -127,6 +132,7 @@ public AbstractKeyedStateBackend(
127
132
ExecutionConfig executionConfig ,
128
133
TtlTimeProvider ttlTimeProvider ,
129
134
LatencyTrackingStateConfig latencyTrackingStateConfig ,
135
+ SizeTrackingStateConfig sizeTrackingStateConfig ,
130
136
CloseableRegistry cancelStreamRegistry ,
131
137
StreamCompressionDecorator keyGroupCompressionDecorator ,
132
138
InternalKeyContext <K > keyContext ) {
@@ -137,6 +143,7 @@ public AbstractKeyedStateBackend(
137
143
executionConfig ,
138
144
ttlTimeProvider ,
139
145
latencyTrackingStateConfig ,
146
+ sizeTrackingStateConfig ,
140
147
cancelStreamRegistry ,
141
148
keyGroupCompressionDecorator ,
142
149
Preconditions .checkNotNull (keyContext ),
@@ -157,6 +164,7 @@ protected AbstractKeyedStateBackend(AbstractKeyedStateBackend<K> abstractKeyedSt
157
164
abstractKeyedStateBackend .executionConfig ,
158
165
abstractKeyedStateBackend .ttlTimeProvider ,
159
166
abstractKeyedStateBackend .latencyTrackingStateConfig ,
167
+ abstractKeyedStateBackend .sizeTrackingStateConfig ,
160
168
abstractKeyedStateBackend .cancelStreamRegistry ,
161
169
abstractKeyedStateBackend .keyGroupCompressionDecorator ,
162
170
abstractKeyedStateBackend .keyContext ,
@@ -176,6 +184,7 @@ private AbstractKeyedStateBackend(
176
184
ExecutionConfig executionConfig ,
177
185
TtlTimeProvider ttlTimeProvider ,
178
186
LatencyTrackingStateConfig latencyTrackingStateConfig ,
187
+ SizeTrackingStateConfig sizeTrackingStateConfig ,
179
188
CloseableRegistry cancelStreamRegistry ,
180
189
StreamCompressionDecorator keyGroupCompressionDecorator ,
181
190
InternalKeyContext <K > keyContext ,
@@ -206,6 +215,7 @@ private AbstractKeyedStateBackend(
206
215
this .keyGroupCompressionDecorator = keyGroupCompressionDecorator ;
207
216
this .ttlTimeProvider = Preconditions .checkNotNull (ttlTimeProvider );
208
217
this .latencyTrackingStateConfig = Preconditions .checkNotNull (latencyTrackingStateConfig );
218
+ this .sizeTrackingStateConfig = Preconditions .checkNotNull (sizeTrackingStateConfig );
209
219
this .keySelectionListeners = keySelectionListeners ;
210
220
this .lastState = lastState ;
211
221
this .lastName = lastName ;
@@ -383,8 +393,10 @@ public <N, S extends State, V> S getOrCreateKeyedState(
383
393
LatencyTrackingStateFactory .createStateAndWrapWithLatencyTrackingIfEnabled (
384
394
TtlStateFactory .createStateAndWrapWithTtlIfEnabled (
385
395
namespaceSerializer , stateDescriptor , this , ttlTimeProvider ),
396
+ this ,
386
397
stateDescriptor ,
387
- latencyTrackingStateConfig );
398
+ latencyTrackingStateConfig ,
399
+ sizeTrackingStateConfig );
388
400
keyValueStatesByName .put (stateDescriptor .getName (), kvState );
389
401
publishQueryableStateIfEnabled (stateDescriptor , kvState );
390
402
}
@@ -451,6 +463,10 @@ public LatencyTrackingStateConfig getLatencyTrackingStateConfig() {
451
463
return latencyTrackingStateConfig ;
452
464
}
453
465
466
+ public SizeTrackingStateConfig getSizeTrackingStateConfig () {
467
+ return sizeTrackingStateConfig ;
468
+ }
469
+
454
470
@ VisibleForTesting
455
471
public StreamCompressionDecorator getKeyGroupCompressionDecorator () {
456
472
return keyGroupCompressionDecorator ;
0 commit comments