alievmirza commented on code in PR #4594:
URL: https://github.com/apache/ignite-3/pull/4594#discussion_r1818773751
##########
modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java:
##########
@@ -642,6 +653,14 @@ public void
testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful() throws Exce
assertThat(metastore.get(new
ByteArray(dataNodeKey[0])).thenApply(Entry::tombstone), willBe(true));
}
+ private static Map<Node, Integer> deserializeDataNodesMap(byte[] bytes) {
Review Comment:
Why can't we use `DistributionZonesUtil#deserializeDataNodesMap`? The same
with `deserializeLogicalTopologySet`, I see that you have several copies of
this method in different test classes, could we us general method? We could add
it to this class as well.
##########
modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java:
##########
@@ -831,18 +849,27 @@ private CompletableFuture<Void>
saveRecoverableStateToMetastorage(
) {
Operation[] puts = new Operation[3 + zoneIds.size()];
- puts[0] = put(zonesNodesAttributes(), toBytes(nodesAttributes()));
+ puts[0] = put(zonesNodesAttributes(),
VersionedSerialization.toBytes(nodesAttributes(),
NodesAttributesSerializer.INSTANCE));
puts[1] = put(zonesRecoverableStateRevision(),
longToBytesKeepingOrder(revision));
- puts[2] = put(zonesLastHandledTopology(), toBytes(newLogicalTopology));
+ puts[2] = put(
+ zonesLastHandledTopology(),
+ VersionedSerialization.toBytes(newLogicalTopology,
LogicalTopologySetSerializer.INSTANCE)
+ );
int i = 3;
// TODO: https://issues.apache.org/jira/browse/IGNITE-19491 Properly
utilise topology augmentation map. Also this map
// TODO: can be saved only once for all zones.
for (Integer zoneId : zoneIds) {
- puts[i++] = put(zoneTopologyAugmentation(zoneId),
toBytes(zonesState.get(zoneId).topologyAugmentationMap()));
+ puts[i++] = put(
+ zoneTopologyAugmentation(zoneId),
+ VersionedSerialization.toBytes(
Review Comment:
Constructions like
```
VersionedSerialization.toBytes(
zonesState.get(zoneId).topologyAugmentationMap(),
TopologyAugmentationMapSerializer.INSTANCE
)
```
look a bit overloaded.
Maybe, we could hide it inside `TopologyAugmentationMapSerializer`, so it
could look like
```
TopologyAugmentationMapSerializer.toBytes(zonesState.get(zoneId).topologyAugmentationMap())
```
?
WDYT? Could this idea be adapted to all Serializers/Deserializers?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]