swamirishi commented on PR #7402:
URL: https://github.com/apache/ozone/pull/7402#issuecomment-2486155997

   > Why is the logic embedded into 
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/ContainerSet.java
 A cleaner approach would be expand via aggregation the container set logic.
   > 
   > 1. Create a new Java class (WitnessedContainers.java) that reads and 
writes to the DB and keeps a concurrent copy in memory to handle concurrency 
(the current code does this)
   > 2. Do not bother with missing Container logic at the level of 
WitnessedContainers.java. When the replication manager tries to create a 
container, it checks if it is in the witnessed list and then adds it. So we 
only need two methods for addition `AddContainer` and 
`AddContainerIfNotPresent`.
   > 
   
   Then what is the purpose of missing container set? We shouldn't have 2 data 
structures solving the same stuff. We should remove the missing container set 
and only rely on the witnessed container list.
   
   > Do we need reference counted code to be introduced? Can we get away with 
just embedding it within the ContainerSet?
   > 
   
   I had to do the reference counted db implementation just because of the test 
cases. The PR would have gotten much bigger to fix the test case. A simpler 
approach was to use the reference counted, we can have only one instance of a 
writable db.
   > I think this code change can go through more than one round of 
simplification for what it is trying to solve.
   
   
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to