[ 
https://issues.apache.org/jira/browse/HDDS-17143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siyao Meng updated HDDS-17143:
------------------------------
    Summary: [ON HOLD] Upgrade RocksDB from 10.10.1.1 to 11.x  (was: [ON HOLD] 
Upgrade RocksDB from 10.10.1.1 to 11.8.1)

> [ON HOLD] Upgrade RocksDB from 10.10.1.1 to 11.x
> ------------------------------------------------
>
>                 Key: HDDS-17143
>                 URL: https://issues.apache.org/jira/browse/HDDS-17143
>             Project: Apache Ozone
>          Issue Type: Improvement
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>         Attachments: HDDS-17143.001.patch
>
>
> h3. Goal
> Upgrade rocksdbjni from 10.10.1.1 (HDDS-14225) to 11.8.1, the latest 
> rocksdbjni release. Upstream published no jars for 11.2 to 11.7.
> h3. Changes
> * Bump {{rocksdb.version}} to 11.8.1.
> * rocks-native: RocksDB 11.0 removed {{kLegacyBlockBasedTableMagicNumber}} 
> when it dropped {{format_version}} < 2. Mirror upstream 
> {{sst_file_dumper.cc}} in {{rocks-native.patch}}. Without this, the build 
> still succeeds, but {{libozone_rocksdb_tools.so}} fails to load with 
> {{undefined symbol: _ZN7rocksdb33kLegacyBlockBasedTableMagicNumberE}}.
> * rocks-native: the rocksdbjni 11.x native library uses the C++11 
> {{std::string}} ABI. 10.10.1.1 used the old ABI. Stop forcing 
> {{-D_GLIBCXX_USE_CXX11_ABI=0}} in {{rocks-native/pom.xml}} and 
> {{CMakeLists.txt}}. Otherwise symbols such as 
> {{rocksdb::Comparator::CreateFromString}} do not resolve.
> h3. Compatibility
> * *Java API:* only {{DBOptions#setSkipCheckingSstFileSizesOnDbOpen}} and 
> {{ReadOptions#setManaged}} were removed. Ozone uses neither, and the whole 
> build, including test sources, compiles unchanged.
> * *On-disk format:* {{format_version}} stays pinned to 5.
> * *Downgrade:* verified that RocksDB 10.10.1.1 and 7.7.3 open, read, 
> {{verifyChecksum}} and compact a DB written by 11.8.1. The DB contained LZ4 
> SSTs, WAL-only data, deletes, a fixed-length prefix extractor CF, and 11.x 
> MANIFEST records. The new MANIFEST tags are in the safe-ignore ranges.
> * *Default compression:* RocksDB 11.5 changed the default compression for 
> column families that do not set it from Snappy to LZ4 
> (facebook/rocksdb#14818). New SSTs written by OM, SCM and datanode will be 
> LZ4. Old and new versions read both.
> * *Platform:* the bundled {{librocksdbjni-linux64.so}} now needs 
> {{GLIBCXX_3.4.22}} (libstdc++ from GCC 6 or later). 10.10.1.1 needed 
> {{GLIBCXX_3.4.19}}. glibc stays at 2.17. Hosts with RHEL/CentOS 7 system 
> libstdc++ cannot load it.
> * Do not use rocksdbjni 11.1.0/11.1.1. In those versions, closing a read-only 
> DB deletes live SST files of a concurrent read-write DB on the same directory 
> (introduced by facebook/rocksdb#14322, fixed by facebook/rocksdb#14881). 
> 10.10.1.1, 11.1.2 and 11.8.1 are not affected (reproduced).
> h3. Testing done locally
> * Full build with test sources: OK.
> * hdds-managed-rocksdb, rocksdb-checkpoint-differ and hdds-server-framework 
> unit tests: 249 run, 0 failures.
> * rocks-native with {{-Drocks_tools_native}}: 46 run, 0 failures.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to