aryangupta1998 opened a new pull request, #9423:
URL: https://github.com/apache/ozone/pull/9423

   ## What changes were proposed in this pull request?
   
   DirectoryDeletingService should use rocksdb deleteRange instead of creating 
individual tombstones which can cause seek time issue. But in the presence of 
snapshots the deleteRange APi should stitch continuous key ranges together that 
are reclaimable and not issue a blind deleteRange which could lead to incorrect 
reclaimation of the entry and lead to unreference orphan blocks when the 
snapshots are deleted.
   
   DeleteRange APIs on FileTable, DirectoryTable, KeyTable can be used by 
background garbage collection services and should never be used by user facing 
APIs like keyDelete as that can cause issues in snapshot correctness.
   
   E.g.
   
   > Dir1/Key1(Reclaimable) Dir1/Key2(Reclaimable) Dir1/key3(Not Reclaimable) 
Dir1/Key4(Reclaimable) Dir1/Key5(Reclaimable)
   
   
   Then DirectoryDeletingService should issue 2 delete range like
   [Dir1/Key1..Dir1/Key2] (Both inclusive)
   [Dir1/Key4..Dir1/Key5]
   In terms of rocksdb deleteRange where the end key range is exclusive  this 
would be equivalent to 
   [Dir1/Key1..Dir1/Key3) and [Dir1/Key4..lexicographicalHigherString(Dir1/)]
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-13311
   
   ## How was this patch tested?
   
   Testes via UT.
   


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