HDDS-5462. Multi-raft style placement with permutations for offline data generator #2434
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
JIRA: https://issues.apache.org/jira/browse/HDDS-5462
What changes were proposed in this pull request?
Freon does have an offline generator test suite to generate quickly local data (rocksdb + container) for load testing.
But today, the datanode generator doesn't support different replication sets for the same node. Containers are generated in a way where the replication sets ("pipelines") are always include the same nodes:
In this case, if
node1is down, onlynode2andnode3can be used as the source of the nodes.With multi-raft option enabled, it's possible to have a placement were more than two nodes are used as source.
This patch uses a very simple permutation based approach to have similar layout but still keep the generation to be predictable.
With the new
--overlapargument, different containers can have slightly different replication set / pipelines:Please replace this section with the link to the Apache JIRA)
How was this patch tested?
Unit test is added for the new placement calculation.