protected TypeSerializer<K> getKeySerializer() { return stateTable.keyContext.getKeySerializer(); }
protected TypeSerializer<K> getKeySerializer() { return stateTable.keyContext.getKeySerializer(); }
NestedMapsStateTableSnapshot(NestedMapsStateTable<K, N, S> owningTable, StateSnapshotTransformer<S> snapshotFilter) { super(owningTable); this.snapshotFilter = snapshotFilter; this.keySerializer = owningStateTable.keyContext.getKeySerializer(); this.namespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer(); this.stateSerializer = owningStateTable.metaInfo.getStateSerializer(); }
NestedMapsStateTableSnapshot(NestedMapsStateTable<K, N, S> owningTable, StateSnapshotTransformer<S> snapshotFilter) { super(owningTable); this.snapshotFilter = snapshotFilter; this.keySerializer = owningStateTable.keyContext.getKeySerializer(); this.namespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer(); this.stateSerializer = owningStateTable.metaInfo.getStateSerializer(); }
final Map<N, Map<K, S>> keyGroupMap = owningStateTable.getMapForKeyGroup(keyGroupId); if (null != keyGroupMap) { TypeSerializer<K> keySerializer = owningStateTable.keyContext.getKeySerializer(); TypeSerializer<N> namespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer(); TypeSerializer<S> stateSerializer = owningStateTable.metaInfo.getStateSerializer();
final Map<N, Map<K, S>> keyGroupMap = owningStateTable.getMapForKeyGroup(keyGroupId); if (null != keyGroupMap) { TypeSerializer<K> keySerializer = owningStateTable.keyContext.getKeySerializer(); TypeSerializer<N> namespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer(); TypeSerializer<S> stateSerializer = owningStateTable.metaInfo.getStateSerializer();
@Override public void readMappingsInKeyGroup(@Nonnull DataInputView inView, @Nonnegative int keyGroupId) throws IOException { if (inView.readByte() == 0) { return; } final TypeSerializer<K> keySerializer = stateTable.keyContext.getKeySerializer(); final TypeSerializer<N> namespaceSerializer = stateTable.getNamespaceSerializer(); final TypeSerializer<S> stateSerializer = stateTable.getStateSerializer(); // V1 uses kind of namespace compressing format int numNamespaces = inView.readInt(); for (int k = 0; k < numNamespaces; k++) { N namespace = namespaceSerializer.deserialize(inView); int numEntries = inView.readInt(); for (int l = 0; l < numEntries; l++) { K key = keySerializer.deserialize(inView); S state = stateSerializer.deserialize(inView); stateTable.put(key, keyGroupId, namespace, state); } } } }
@Override public void readMappingsInKeyGroup(@Nonnull DataInputView inView, @Nonnegative int keyGroupId) throws IOException { if (inView.readByte() == 0) { return; } final TypeSerializer<K> keySerializer = stateTable.keyContext.getKeySerializer(); final TypeSerializer<N> namespaceSerializer = stateTable.getNamespaceSerializer(); final TypeSerializer<S> stateSerializer = stateTable.getStateSerializer(); // V1 uses kind of namespace compressing format int numNamespaces = inView.readInt(); for (int k = 0; k < numNamespaces; k++) { N namespace = namespaceSerializer.deserialize(inView); int numEntries = inView.readInt(); for (int l = 0; l < numEntries; l++) { K key = keySerializer.deserialize(inView); S state = stateSerializer.deserialize(inView); stateTable.put(key, keyGroupId, namespace, state); } } } }
private static <K, N, S> StateSnapshotKeyGroupReader createV2PlusReader(StateTable<K, N, S> stateTable) { final TypeSerializer<K> keySerializer = stateTable.keyContext.getKeySerializer(); final TypeSerializer<N> namespaceSerializer = stateTable.getNamespaceSerializer(); final TypeSerializer<S> stateSerializer = stateTable.getStateSerializer(); final Tuple3<N, K, S> buffer = new Tuple3<>(); return KeyGroupPartitioner.createKeyGroupPartitionReader((in) -> { buffer.f0 = namespaceSerializer.deserialize(in); buffer.f1 = keySerializer.deserialize(in); buffer.f2 = stateSerializer.deserialize(in); return buffer; }, (element, keyGroupId1) -> stateTable.put(element.f1, keyGroupId1, element.f0, element.f2)); }
private static <K, N, S> StateSnapshotKeyGroupReader createV2PlusReader(StateTable<K, N, S> stateTable) { final TypeSerializer<K> keySerializer = stateTable.keyContext.getKeySerializer(); final TypeSerializer<N> namespaceSerializer = stateTable.getNamespaceSerializer(); final TypeSerializer<S> stateSerializer = stateTable.getStateSerializer(); final Tuple3<N, K, S> buffer = new Tuple3<>(); return KeyGroupPartitioner.createKeyGroupPartitionReader((in) -> { buffer.f0 = namespaceSerializer.deserialize(in); buffer.f1 = keySerializer.deserialize(in); buffer.f2 = stateSerializer.deserialize(in); return buffer; }, (element, keyGroupId1) -> stateTable.put(element.f1, keyGroupId1, element.f0, element.f2)); }
/** * Creates a new {@link CopyOnWriteStateTableSnapshot}. * * @param owningStateTable the {@link CopyOnWriteStateTable} for which this object represents a snapshot. */ CopyOnWriteStateTableSnapshot(CopyOnWriteStateTable<K, N, S> owningStateTable) { super(owningStateTable); this.snapshotData = owningStateTable.snapshotTableArrays(); this.snapshotVersion = owningStateTable.getStateTableVersion(); this.numberOfEntriesInSnapshotData = owningStateTable.size(); // We create duplicates of the serializers for the async snapshot, because TypeSerializer // might be stateful and shared with the event processing thread. this.localKeySerializer = owningStateTable.keyContext.getKeySerializer().duplicate(); this.localNamespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer().duplicate(); this.localStateSerializer = owningStateTable.metaInfo.getStateSerializer().duplicate(); this.partitionedStateTableSnapshot = null; }
/** * Creates a new {@link CopyOnWriteStateTableSnapshot}. * * @param owningStateTable the {@link CopyOnWriteStateTable} for which this object represents a snapshot. */ CopyOnWriteStateTableSnapshot(CopyOnWriteStateTable<K, N, S> owningStateTable) { super(owningStateTable); this.snapshotData = owningStateTable.snapshotTableArrays(); this.snapshotVersion = owningStateTable.getStateTableVersion(); this.stateTableSize = owningStateTable.size(); // We create duplicates of the serializers for the async snapshot, because TypeSerializer // might be stateful and shared with the event processing thread. this.localKeySerializer = owningStateTable.keyContext.getKeySerializer().duplicate(); this.localNamespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer().duplicate(); this.localStateSerializer = owningStateTable.metaInfo.getStateSerializer().duplicate(); this.keyGroupOffsets = null; }
/** * Creates a new {@link CopyOnWriteStateTableSnapshot}. * * @param owningStateTable the {@link CopyOnWriteStateTable} for which this object represents a snapshot. */ CopyOnWriteStateTableSnapshot(CopyOnWriteStateTable<K, N, S> owningStateTable) { super(owningStateTable); this.snapshotData = owningStateTable.snapshotTableArrays(); this.snapshotVersion = owningStateTable.getStateTableVersion(); this.stateTableSize = owningStateTable.size(); // We create duplicates of the serializers for the async snapshot, because TypeSerializer // might be stateful and shared with the event processing thread. this.localKeySerializer = owningStateTable.keyContext.getKeySerializer().duplicate(); this.localNamespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer().duplicate(); this.localStateSerializer = owningStateTable.metaInfo.getStateSerializer().duplicate(); this.keyGroupOffsets = null; }
/** * Creates a new {@link CopyOnWriteStateTableSnapshot}. * * @param owningStateTable the {@link CopyOnWriteStateTable} for which this object represents a snapshot. */ CopyOnWriteStateTableSnapshot(CopyOnWriteStateTable<K, N, S> owningStateTable) { super(owningStateTable); this.snapshotData = owningStateTable.snapshotTableArrays(); this.snapshotVersion = owningStateTable.getStateTableVersion(); this.numberOfEntriesInSnapshotData = owningStateTable.size(); // We create duplicates of the serializers for the async snapshot, because TypeSerializer // might be stateful and shared with the event processing thread. this.localKeySerializer = owningStateTable.keyContext.getKeySerializer().duplicate(); this.localNamespaceSerializer = owningStateTable.metaInfo.getNamespaceSerializer().duplicate(); this.localStateSerializer = owningStateTable.metaInfo.getStateSerializer().duplicate(); this.partitionedStateTableSnapshot = null; }