diff --git a/CMakeLists.txt b/CMakeLists.txt index a05435d853..4c8579278b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,13 +420,6 @@ if(WITH_NUMA) list(APPEND THIRDPARTY_LIBS NUMA::NUMA) endif() -option(WITH_TBB "build with Threading Building Blocks (TBB)" OFF) -if(WITH_TBB) - find_package(TBB REQUIRED) - add_definitions(-DTBB) - list(APPEND THIRDPARTY_LIBS TBB::TBB) -endif() - # Stall notifications eat some performance from inserts option(DISABLE_STALL_NOTIF "Build with stall notifications" OFF) if(DISABLE_STALL_NOTIF) diff --git a/build_tools/build_detect_platform b/build_tools/build_detect_platform index 6af5d2ce3d..8f23d7bc0b 100755 --- a/build_tools/build_detect_platform +++ b/build_tools/build_detect_platform @@ -27,7 +27,6 @@ # -DLZ4 if the LZ4 library is present # -DZSTD if the ZSTD library is present # -DNUMA if the NUMA library is present -# -DTBB if the TBB library is present # -DMEMKIND if the memkind library is present # # Using gflags in rocksdb: @@ -424,19 +423,6 @@ EOF fi fi - if ! test $ROCKSDB_DISABLE_TBB; then - # Test whether tbb is available - $CXX $PLATFORM_CXXFLAGS $LDFLAGS -x c++ - -o test.o -ltbb 2>/dev/null < - int main() {} -EOF - if [ "$?" = 0 ]; then - COMMON_FLAGS="$COMMON_FLAGS -DTBB" - PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -ltbb" - JAVA_LDFLAGS="$JAVA_LDFLAGS -ltbb" - fi - fi - if ! test $ROCKSDB_DISABLE_JEMALLOC; then # Test whether jemalloc is available if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS $LDFLAGS -x c++ - -o test.o -ljemalloc \ diff --git a/build_tools/dependencies_platform010.sh b/build_tools/dependencies_platform010.sh index a55663cb25..952aa30e76 100644 --- a/build_tools/dependencies_platform010.sh +++ b/build_tools/dependencies_platform010.sh @@ -1,21 +1,20 @@ # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. # The file is generated using update_dependencies.sh. -GCC_BASE=/mnt/gvfs/third-party2/gcc/62de5a92e5f23c661c3d4b9f322e04eb14e7a5bd/11.x/centos8-native/886b5eb -CLANG_BASE=/mnt/gvfs/third-party2/llvm-fb/1f6edd1ff15c99c861afc8f3cd69054cd974dd64/15/platform010/72a2ff8 -LIBGCC_BASE=/mnt/gvfs/third-party2/libgcc/d1129753c8361ac8e9453c0f4291337a4507ebe6/11.x/platform010/5684a5a -GLIBC_BASE=/mnt/gvfs/third-party2/glibc/fed6e93d87571fb162734c86636119d45a398963/2.34/platform010/f259413 -SNAPPY_BASE=/mnt/gvfs/third-party2/snappy/31a346126a1f3b64812c362511cb04cc1bd40855/1.1.8/platform010/76ebdda -ZLIB_BASE=/mnt/gvfs/third-party2/zlib/0c65c05468b5a38cef1a106a1f526463e120c8dd/1.2.8/platform010/76ebdda +GCC_BASE=/mnt/gvfs/third-party2/gcc/e9cb2d4550b5a95024125084420342d256b349cd/11.x/centos9-native/3bed279 +CLANG_BASE=/mnt/gvfs/third-party2/llvm-fb/4e46e6967e15412702e51960c69790a78933856f/21/platform010/72a2ff8 +LIBGCC_BASE=/mnt/gvfs/third-party2/libgcc/63c5179edc90fec473e53c1b2f92269c65c39e07/11.x/platform010/5684a5a +GLIBC_BASE=/mnt/gvfs/third-party2/glibc/b4a6248a76a163bcccb1e4751e247712c535846e/2.34/platform010/f259413 +SNAPPY_BASE=/mnt/gvfs/third-party2/snappy/ef895164499fdfedb9d9b9c85520de10aa8ff9ca/1.1.8/platform010/76ebdda +ZLIB_BASE=/mnt/gvfs/third-party2/zlib/643dbf0136f869562485cfcb2953f5cab60447ef/1.2.8/platform010/76ebdda BZIP2_BASE=/mnt/gvfs/third-party2/bzip2/09703139cfc376bd8a82642385a0e97726b28287/1.0.6/platform010/76ebdda -LZ4_BASE=/mnt/gvfs/third-party2/lz4/ff23d17b932725cc1734a14896a8b67c518ba169/1.9.4/platform010/76ebdda -ZSTD_BASE=/mnt/gvfs/third-party2/zstd/576397d8b1d9cea7306ad1e454d5e55caaa2ff1c/1.4.x/platform010/64091f4 -GFLAGS_BASE=/mnt/gvfs/third-party2/gflags/fecac07861cb829f5e60dbeff0503d3272db73c0/2.2.0/platform010/76ebdda -JEMALLOC_BASE=/mnt/gvfs/third-party2/jemalloc/0bb3f5756788ce26e2e16a1cb2f2af2c59b51abe/master/platform010/f57cc4a +LZ4_BASE=/mnt/gvfs/third-party2/lz4/823bf8e000654abef784311296ffc8166d9d3986/1.9.4/platform010/76ebdda +ZSTD_BASE=/mnt/gvfs/third-party2/zstd/0cda78647b5712bec7ec6d9ba2f0dcdabfb6f44f/1.4.x/platform010/64091f4 +GFLAGS_BASE=/mnt/gvfs/third-party2/gflags/a02e0de00945729ad553c187c64e86b57f45a33b/2.2.0/platform010/76ebdda +JEMALLOC_BASE=/mnt/gvfs/third-party2/jemalloc/a1a50742bec7195bfafb594e174ea45dc197a420/master/platform010/779a252 NUMA_BASE=/mnt/gvfs/third-party2/numa/5b602edd46fda54cdd7ea45f77dbe4061206e174/2.0.11/platform010/76ebdda -LIBUNWIND_BASE=/mnt/gvfs/third-party2/libunwind/97cac22a149c2e202917e05d44e87e516b68216f/1.4/platform010/5074a48 -TBB_BASE=/mnt/gvfs/third-party2/tbb/53953ebc4e3eda85ad6fc3e429ba146035e97b90/2018_U5/platform010/76ebdda +LIBUNWIND_BASE=/mnt/gvfs/third-party2/libunwind/f3cce2e1a79ac8d64e102886603a6997d6e88640/1.8/platform010/76ebdda LIBURING_BASE=/mnt/gvfs/third-party2/liburing/a98e2d137007e3ebf7f33bd6f99c2c56bdaf8488/20210212/platform010/76ebdda BENCHMARK_BASE=/mnt/gvfs/third-party2/benchmark/780c7a0f9cf0967961e69ad08e61cddd85d61821/trunk/platform010/76ebdda -KERNEL_HEADERS_BASE=/mnt/gvfs/third-party2/kernel-headers/624a2f8f6c93c3c1df8aa4a6255d8202631a6c80/fb/platform010/da39a3e -BINUTILS_BASE=/mnt/gvfs/third-party2/binutils/39579e8603b48b3540f8b0633f43adf29acccb8b/2.37/centos8-native/da39a3e -VALGRIND_BASE=/mnt/gvfs/third-party2/valgrind/cd9cc656d49ecb53797ce4d055e49fde29fd57ff/3.19.0/platform010/76ebdda +KERNEL_HEADERS_BASE=/mnt/gvfs/third-party2/kernel-headers/0883cccda758e68b47e4c04e4fa01142e1f60f32/fb/platform010/da39a3e +BINUTILS_BASE=/mnt/gvfs/third-party2/binutils/1d5d19135a406a941d3a441eb2bf506bb9d19210/2.43/centos9-native/be7139e +VALGRIND_BASE=/mnt/gvfs/third-party2/valgrind/3e2b7ccc315c9a0f2b678ce6fd774f4970f9bf3b/3.22.0/platform010/76ebdda diff --git a/build_tools/fbcode_config.sh b/build_tools/fbcode_config.sh index 802e757795..6e908e567c 100644 --- a/build_tools/fbcode_config.sh +++ b/build_tools/fbcode_config.sh @@ -87,15 +87,6 @@ if test -z $PIC_BUILD; then LIBUNWIND="$LIBUNWIND_BASE/lib/libunwind.a" fi -# location of TBB -TBB_INCLUDE=" -isystem $TBB_BASE/include/" -if test -z $PIC_BUILD; then - TBB_LIBS="$TBB_BASE/lib/libtbb.a" -else - TBB_LIBS="$TBB_BASE/lib/libtbb_pic.a" -fi -CFLAGS+=" -DTBB" - test "$USE_SSE" || USE_SSE=1 export USE_SSE test "$PORTABLE" || PORTABLE=1 @@ -104,7 +95,7 @@ export PORTABLE BINUTILS="$BINUTILS_BASE/bin" AR="$BINUTILS/ar" -DEPS_INCLUDE="$SNAPPY_INCLUDE $ZLIB_INCLUDE $BZIP_INCLUDE $LZ4_INCLUDE $ZSTD_INCLUDE $GFLAGS_INCLUDE $NUMA_INCLUDE $TBB_INCLUDE" +DEPS_INCLUDE="$SNAPPY_INCLUDE $ZLIB_INCLUDE $BZIP_INCLUDE $LZ4_INCLUDE $ZSTD_INCLUDE $GFLAGS_INCLUDE $NUMA_INCLUDE" STDLIBS="-L $GCC_BASE/lib64" @@ -150,17 +141,17 @@ CFLAGS+=" $DEPS_INCLUDE" CFLAGS+=" -DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_MALLOC_USABLE_SIZE -DROCKSDB_RANGESYNC_PRESENT -DROCKSDB_SCHED_GETCPU_PRESENT" CXXFLAGS+=" $CFLAGS" -EXEC_LDFLAGS=" $SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $NUMA_LIB $TBB_LIBS" +EXEC_LDFLAGS=" $SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $NUMA_LIB" EXEC_LDFLAGS+=" -B$BINUTILS/gold" EXEC_LDFLAGS+=" -Wl,--dynamic-linker,/usr/local/fbcode/gcc-5-glibc-2.23/lib/ld.so" EXEC_LDFLAGS+=" $LIBUNWIND" EXEC_LDFLAGS+=" -Wl,-rpath=/usr/local/fbcode/gcc-5-glibc-2.23/lib" -# required by libtbb +# dynamic loading EXEC_LDFLAGS+=" -ldl" PLATFORM_LDFLAGS="$LIBGCC_LIBS $GLIBC_LIBS $STDLIBS -lgcc -lstdc++" -EXEC_LDFLAGS_SHARED="$SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $TBB_LIBS" +EXEC_LDFLAGS_SHARED="$SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS" VALGRIND_VER="$VALGRIND_BASE/bin/" diff --git a/build_tools/fbcode_config_platform010.sh b/build_tools/fbcode_config_platform010.sh index 0fc99ecad1..33af20a013 100644 --- a/build_tools/fbcode_config_platform010.sh +++ b/build_tools/fbcode_config_platform010.sh @@ -82,11 +82,6 @@ CFLAGS+=" -DNUMA" # location of libunwind LIBUNWIND="$LIBUNWIND_BASE/lib/libunwind${MAYBE_PIC}.a" -# location of TBB -TBB_INCLUDE=" -isystem $TBB_BASE/include/" -TBB_LIBS="$TBB_BASE/lib/libtbb${MAYBE_PIC}.a" -CFLAGS+=" -DTBB" - # location of LIBURING LIBURING_INCLUDE=" -isystem $LIBURING_BASE/include/" LIBURING_LIBS="$LIBURING_BASE/lib/liburing${MAYBE_PIC}.a" @@ -101,7 +96,7 @@ BINUTILS="$BINUTILS_BASE/bin" AR="$BINUTILS/ar" AS="$BINUTILS/as" -DEPS_INCLUDE="$SNAPPY_INCLUDE $ZLIB_INCLUDE $BZIP_INCLUDE $LZ4_INCLUDE $ZSTD_INCLUDE $GFLAGS_INCLUDE $NUMA_INCLUDE $TBB_INCLUDE $LIBURING_INCLUDE $BENCHMARK_INCLUDE" +DEPS_INCLUDE="$SNAPPY_INCLUDE $ZLIB_INCLUDE $BZIP_INCLUDE $LZ4_INCLUDE $ZSTD_INCLUDE $GFLAGS_INCLUDE $NUMA_INCLUDE $LIBURING_INCLUDE $BENCHMARK_INCLUDE" STDLIBS="-L $GCC_BASE/lib64" @@ -157,18 +152,18 @@ CFLAGS+=" $DEPS_INCLUDE" CFLAGS+=" -DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_MALLOC_USABLE_SIZE -DROCKSDB_RANGESYNC_PRESENT -DROCKSDB_SCHED_GETCPU_PRESENT -DROCKSDB_IOURING_PRESENT" CXXFLAGS+=" $CFLAGS" -EXEC_LDFLAGS=" $SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $NUMA_LIB $TBB_LIBS $LIBURING_LIBS $BENCHMARK_LIBS" +EXEC_LDFLAGS=" $SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $NUMA_LIB $LIBURING_LIBS $BENCHMARK_LIBS" EXEC_LDFLAGS+=" -Wl,--dynamic-linker,/usr/local/fbcode/platform010/lib/ld.so" EXEC_LDFLAGS+=" $LIBUNWIND" EXEC_LDFLAGS+=" -Wl,-rpath=/usr/local/fbcode/platform010/lib" EXEC_LDFLAGS+=" -Wl,-rpath=$GCC_BASE/lib64" -# required by libtbb +# dynamic loading EXEC_LDFLAGS+=" -ldl" PLATFORM_LDFLAGS="$LIBGCC_LIBS $GLIBC_LIBS $STDLIBS -lgcc -lstdc++" PLATFORM_LDFLAGS+=" -B$BINUTILS" -EXEC_LDFLAGS_SHARED="$SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $TBB_LIBS $LIBURING_LIBS $BENCHMARK_LIBS" +EXEC_LDFLAGS_SHARED="$SNAPPY_LIBS $ZLIB_LIBS $BZIP_LIBS $LZ4_LIBS $ZSTD_LIBS $GFLAGS_LIBS $LIBURING_LIBS $BENCHMARK_LIBS" VALGRIND_VER="$VALGRIND_BASE/bin/" diff --git a/build_tools/update_dependencies.sh b/build_tools/update_dependencies.sh index 6584cd6eda..4957dd041d 100755 --- a/build_tools/update_dependencies.sh +++ b/build_tools/update_dependencies.sh @@ -32,7 +32,7 @@ function get_lib_base() local lib_platform=$3 local result="$TP2_LATEST/$lib_name/" - + # Lib Version if [ -z "$lib_version" ] || [ "$lib_version" = "LATEST" ]; then # version is not provided, use latest @@ -40,7 +40,7 @@ function get_lib_base() else result="$result/$lib_version/" fi - + # Lib Platform if [ -z "$lib_platform" ]; then # platform is not provided, use latest gcc @@ -49,17 +49,17 @@ function get_lib_base() echo $lib_platform result="$result/$lib_platform/" fi - + result=`ls -1d $result/*/ | head -n1` echo Finding link $result - + # lib_name => LIB_NAME_BASE local __res_var=${lib_name^^}"_BASE" __res_var=`echo $__res_var | tr - _` # LIB_NAME_BASE=$result eval $__res_var=`readlink -f $result` - + log_variable $__res_var } @@ -75,17 +75,33 @@ touch "$OUTPUT" echo "Writing dependencies to $OUTPUT" # Compilers locations -GCC_BASE=`readlink -f $TP2_LATEST/gcc/11.x/centos8-native/*/` -CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/15/platform010/*/` +# GCC is pinned to 11.x because the only newer GCC in third-party2 (13.x) is +# built for centos9/glibc>=2.35 -- its libgcc_s.so.1 has a hard reference +# to _dl_find_object@GLIBC_2.35, but platform010 ships glibc 2.34. Bumping +# GCC requires a platform with glibc >= 2.35. +GCC_BASE=`readlink -f $TP2_LATEST/gcc/11.x/centos9-native/*/` +# Clang is pinned to the latest tested major (21). Bump deliberately. +CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/21/platform010/*/` log_header log_variable GCC_BASE log_variable CLANG_BASE # Libraries locations +# libgcc is pinned to 11.x to match the GCC 11 compiler above (libstdc++/ +# libgcc runtime, ABI, and C++ headers). Bump in lockstep with GCC_BASE. get_lib_base libgcc 11.x platform010 +# glibc 2.34 is the platform010 ABI baseline (ld.so + libc); it is also the +# only version available in third-party2, and defines the platform -- do +# not bump independently. get_lib_base glibc 2.34 platform010 get_lib_base snappy LATEST platform010 +# zlib is pinned to 1.2.8: it is the latest version with an x86_64 +# platform010 build (1.2.13 / 1.3.1 are centos9 / aarch64 only). At time of +# writing, LATEST here doesn't work: get_lib_base picks the newest version +# dir first and only then appends the platform, with no fallback -- so +# LATEST would resolve to 1.3.1, find no platform010 build, and emit an +# empty ZLIB_BASE. get_lib_base zlib 1.2.8 platform010 get_lib_base bzip2 LATEST platform010 get_lib_base lz4 LATEST platform010 @@ -94,12 +110,11 @@ get_lib_base gflags LATEST platform010 get_lib_base jemalloc LATEST platform010 get_lib_base numa LATEST platform010 get_lib_base libunwind LATEST platform010 -get_lib_base tbb 2018_U5 platform010 get_lib_base liburing LATEST platform010 get_lib_base benchmark LATEST platform010 get_lib_base kernel-headers fb platform010 -get_lib_base binutils LATEST centos8-native +get_lib_base binutils LATEST centos9-native get_lib_base valgrind LATEST platform010 git diff $OUTPUT diff --git a/cmake/RocksDBConfig.cmake.in b/cmake/RocksDBConfig.cmake.in index 0bd14be11e..bab7e8ea6c 100644 --- a/cmake/RocksDBConfig.cmake.in +++ b/cmake/RocksDBConfig.cmake.in @@ -44,10 +44,6 @@ if(@WITH_NUMA@) find_dependency(NUMA) endif() -if(@WITH_TBB@) - find_dependency(TBB) -endif() - find_dependency(Threads) include("${CMAKE_CURRENT_LIST_DIR}/RocksDBTargets.cmake") diff --git a/cmake/modules/FindTBB.cmake b/cmake/modules/FindTBB.cmake deleted file mode 100644 index f6861fa552..0000000000 --- a/cmake/modules/FindTBB.cmake +++ /dev/null @@ -1,33 +0,0 @@ -# - Find TBB -# Find the Thread Building Blocks library and includes -# -# TBB_INCLUDE_DIRS - where to find tbb.h, etc. -# TBB_LIBRARIES - List of libraries when using TBB. -# TBB_FOUND - True if TBB found. - -if(NOT DEFINED TBB_ROOT_DIR) - set(TBB_ROOT_DIR "$ENV{TBBROOT}") -endif() - -find_path(TBB_INCLUDE_DIRS - NAMES tbb/tbb.h - HINTS ${TBB_ROOT_DIR}/include) - -find_library(TBB_LIBRARIES - NAMES tbb - HINTS ${TBB_ROOT_DIR}/lib ENV LIBRARY_PATH) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(TBB DEFAULT_MSG TBB_LIBRARIES TBB_INCLUDE_DIRS) - -mark_as_advanced( - TBB_LIBRARIES - TBB_INCLUDE_DIRS) - -if(TBB_FOUND AND NOT (TARGET TBB::TBB)) - add_library (TBB::TBB UNKNOWN IMPORTED) - set_target_properties(TBB::TBB - PROPERTIES - IMPORTED_LOCATION ${TBB_LIBRARIES} - INTERFACE_INCLUDE_DIRECTORIES ${TBB_INCLUDE_DIRS}) -endif() diff --git a/db/db_basic_test.cc b/db/db_basic_test.cc index e17f16e506..6b0bd2eae6 100644 --- a/db/db_basic_test.cc +++ b/db/db_basic_test.cc @@ -5459,9 +5459,9 @@ class DBBasicTestMultiGet : public DBTestBase { std::vector cf_names_; }; -class DBBasicTestWithParallelIO : public DBBasicTestMultiGet, - public testing::WithParamInterface< - std::tuple> { +class DBBasicTestWithParallelIO : public testing::WithParamInterface< + std::tuple>, + public DBBasicTestMultiGet { public: DBBasicTestWithParallelIO() : DBBasicTestMultiGet("/db_basic_test_with_parallel_io", 1, diff --git a/table/table_test.cc b/table/table_test.cc index 28721f4459..737b48c8f7 100644 --- a/table/table_test.cc +++ b/table/table_test.cc @@ -1065,8 +1065,8 @@ class HarnessTest : public testing::Test { std::shared_ptr internal_comparator_; }; -class ParameterizedHarnessTest : public HarnessTest, - public testing::WithParamInterface { +class ParameterizedHarnessTest : public testing::WithParamInterface, + public HarnessTest { public: ParameterizedHarnessTest() : HarnessTest(GetParam()) {} }; diff --git a/utilities/transactions/transaction_test.h b/utilities/transactions/transaction_test.h index 2189f897f7..a918375cf3 100644 --- a/utilities/transactions/transaction_test.h +++ b/utilities/transactions/transaction_test.h @@ -542,9 +542,9 @@ class MySQLStyleTransactionTest }; class WriteCommittedTxnWithTsTest - : public TransactionTestBase, - public ::testing::WithParamInterface< - std::tuple> { + : public ::testing::WithParamInterface< + std::tuple>, + public TransactionTestBase { public: WriteCommittedTxnWithTsTest() : TransactionTestBase(std::get<0>(GetParam()), std::get<1>(GetParam()), @@ -584,9 +584,9 @@ class WriteCommittedTxnWithTsTest }; class TimestampedSnapshotWithTsSanityCheck - : public TransactionTestBase, - public ::testing::WithParamInterface> { + : public ::testing::WithParamInterface>, + public TransactionTestBase { public: explicit TimestampedSnapshotWithTsSanityCheck() : TransactionTestBase(std::get<0>(GetParam()), std::get<1>(GetParam()), diff --git a/utilities/write_batch_with_index/write_batch_with_index_test.cc b/utilities/write_batch_with_index/write_batch_with_index_test.cc index caa1881e89..7b897fbce3 100644 --- a/utilities/write_batch_with_index/write_batch_with_index_test.cc +++ b/utilities/write_batch_with_index/write_batch_with_index_test.cc @@ -452,8 +452,8 @@ class WBWIOverwriteTest : public WBWIBaseTest { public: WBWIOverwriteTest() : WBWIBaseTest(true) {} }; -class WriteBatchWithIndexTest : public WBWIBaseTest, - public testing::WithParamInterface { +class WriteBatchWithIndexTest : public testing::WithParamInterface, + public WBWIBaseTest { public: WriteBatchWithIndexTest() : WBWIBaseTest(GetParam()) {} };