xiaoyuyao commented on a change in pull request #71: HDDS-2344. Add immutable 
entries in to the DoubleBuffer for Volume requests.
URL: https://github.com/apache/hadoop-ozone/pull/71#discussion_r338715495
 
 

 ##########
 File path: 
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/volume/OMVolumeSetOwnerRequest.java
 ##########
 @@ -171,7 +171,8 @@ public OMClientResponse 
validateAndUpdateCache(OzoneManager ozoneManager,
       omResponse.setSetVolumePropertyResponse(
           SetVolumePropertyResponse.newBuilder().build());
       omClientResponse = new OMVolumeSetOwnerResponse(oldOwner,
-          oldOwnerVolumeList, newOwnerVolumeList, omVolumeArgs,
+          oldOwnerVolumeList, newOwnerVolumeList,
+          (OmVolumeArgs) omVolumeArgs.clone(),
 
 Review comment:
   bq. other thread which is performing removeAcl is updating the same 
OmVolumeArgs on this(Like we have a list and map internally for acls)
   
   We've already done defensive copy for get Java object of Volume/Bucket/Key 
from DB and converted the client provided acl from protobuf when creating 
OMxxxAclRequest. I think we should trace down the real cause of the CME here. 
Generally, I agree making object immutable is a good thing. However, 
unnecessary clone object has performance implications  that we should be 
cautious. 
   
   bq. when flush happens we might flush these entries to rocksdb when some 
other operation is changing the same entry which might be still submitted/not 
submitted to doublebuffer flush thread.
   
   omVolumeArgs/KeyInfo/BucketInfo are created per request from DB like below:
        omVolumeArgs = omMetadataManager.getVolumeTable().get(dbVolumeKey);
   
   Can you elaborate on the operation that could change the per request created 
volume/bucket/key object?
   
   

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to