Hang, Il giorno dom 25 giu 2023 alle ore 09:47 Hang Chen <chenh...@apache.org> ha scritto: > > Hi guys, > > More than one year ago, we had a discussion[1] about reverting the > RocksDB version for branch-4.14, and the main concern is that RocksDB > 6.17.3 breaks runtime compatibility with older versions and it > requires the code to be recompiled. Lari did a great investigation and > you can find more details in this Apache Pulsar pull > https://github.com/apache/pulsar/pull/14962. In the discussion, we > have two solutions, and we choose solution 1 in the end. > 1) Do not upgrade RocksDB in BookKeeper 4.14.5 and give the user which > uses RocksDB an easy path to upgrade from BK 4.14.4 to 4.14.5 > 2) Upgrade RocksDB and requires to all the BK users to pay attention > to the RocksDB version they have in the classpath. The risk is to have > runtime errors which will require them to rebuild the application and > redeploy their services. > > However, we found two issues about the current RocksDB version > (6.16.4) on branch-4.14 > - In our production environment, we found both RocksDB 6.10.2 and > 6.16.4 has native memory leak issue[2] and after upgraded the RocksDB > version to 6.29.4.1, the memory leak issue was fixed. > - We have upgraded the RocksDB version to 7.9.2 since 4.16.0, and the > RocksDB can only rollback to 6.27+. It means BookKeeper 4.16.0+ can > rollback to 4.15.x (RocksDB 6.29.4.1) but can't rollback to 4.14.x > (RocksDB 6.16.4) if we don't upgrade the RocksDB version to 6.29.4.1 > for branch-4.14 > > The main reason for rolling back RocksDB version for branch-4.14 is > that RocksDB 6.17.3 breaks runtime compatibility with older versions > and it requires the code to be recompiled.
If this is the only reason then I think that it is not a problem, because BookKeeper users don't use RocksDB directly, the RocksDB APIs are not part of BK APIs. So one question is: if I am on BK 4.14.7 and I upgrade to 4.14.8 with the new RocksDB version 6.29.4.1, can I rollback to 4.14.7 if I have some problems ? if the answer is "yes" then I am supportive of this upgrade Thanks for pushing forward this initiative Enrico In my opinion, if users > upgrade BookKeeper 4.14.7 to 4.14.8, which upgraded the RocksDB > version from 6.16.4 to 6.29.4.1, they need to use the new BookKeeper > package which has been compiled with new RocksDB version instead of > replace the BookKeeper-server library directly. So it is safe to > upgrade the RocksDB version. I have pushed one PR[4] to upgrade the > RocksDB version to 6.29.4.1 for branch-4.14. > > Any concerns? > > Thanks, > Hang > > [1] https://lists.apache.org/thread/dsdltmoy5ggqx4oj7hrt13hqok80d4jf > [2] https://github.com/apache/bookkeeper/issues/3507 > [3] https://github.com/apache/bookkeeper/issues/3734#issuecomment-1407626941 > [4] https://github.com/apache/bookkeeper/pull/3947