Dear Ozone Devs,

I 'm starting this discussion thread for the proposal to merge the Ozone
Datanode RocksDB merge feature branch (HDDS-3630
https://issues.apache.org/jira/browse/HDDS-3630) to the master branch.

Currently there will be one RocksDB for each Container on datanode, which
leads to hundreds of thousands of RocksDB instances on one datanode. It's
very challenging to manage this amount of RocksDB instances in one JVM.
Please refer to the "problem statement" section of the design document[1]
for challenge details. Unlike the current approach, Datanode RocksDB merge
feature will use only one RocksDB for each data volume. With far fewer
RocksDB instances to manage, the write path performance and DN stability
are improved, Refer to the Micro Benchmark Data section of the design
document[1].

The feature has been developed in the last 8 months. And it has also been
deployed in Tencent production for 5 months. Now we have reviewed all core
patches, and merged them into the feature branch,  including new disk
layout, new container schema, container replication, container deletion,
block deletion, container scanner, non-rolling upgrade. There are no
blocking JIRAs left.
There are two on-progress JIRAs[2], one is about the feature document md,
another is add acceptance test case. Hopefully, we will resolve them this
week.

For the sake of master branch feature stability, we provide a configuration
to enable/disable this feature. Currently by default, this feature is
disabled.

For more information, please check out the Merge RocksDB in datanode
feature wiki page here:

https://cwiki.apache.org/confluence/display/OZONE/Merge+Rocksdb+in+Datanode+%28HDDS-3630%29+Merge+Checklist

Great thanks to Mark Gui<guim...@126.com>, majority feature investigation,
design and core development is contributed by him. Thanks a lot to Runzhi
Wang,  for first finding current schema V2 layout challenges and initiating
the proposal of merge RocksDB,  to Nanda, Mukul, Wei-Chiu and Stephen
O’Donnell for the help in design review, design discussion and code
review.  If I miss anyone here, sorry for that,  but your efforts are well
appreciated.


If there are no objections for the merge, I will start the official vote
later.

[1] Merge RocksDB in Datanode Design Doc
<https://docs.google.com/document/d/1oPCRUVqTJDbYITbwvoVCOZ2-k108FwOXVhq9ukDKHbQ/edit?usp=sharing>
[2] https://issues.apache.org/jira/browse/HDDS-6790  Add document
     https://issues.apache.org/jira/browse/HDDS-6791  Add smoke test


Thanks,
Sammi

Reply via email to