From 9f2bdd3ca2a8458542e467b75815912566ac0d76 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 4 May 2020 14:11:56 -0700 Subject: [PATCH] Upgrade to RocksDB 6.6.4. ircd::db::database::cache: Remove deprecated interface override. ircd::db::database::cache: Add new GetCharge() abstract virtual override. ircd::db: Use set_stats_level() for privated member. --- configure.ac | 2 +- deps/rocksdb | 2 +- ircd/db.cc | 23 +++++++++++++++-------- ircd/db_database.h | 10 +++++++++- tools/docker/ubuntu/base/Dockerfile | 2 +- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index 93d5c1e45..00d022207 100644 --- a/configure.ac +++ b/configure.ac @@ -1799,7 +1799,7 @@ dnl RocksDB support dnl dnl -ROCKSDB_VERSION_MIN="v5.17.2" +ROCKSDB_VERSION_MIN="v6.6.4" AC_SUBST(ROCKSDB_CPPFLAGS, []) AC_SUBST(ROCKSDB_LDFLAGS, []) diff --git a/deps/rocksdb b/deps/rocksdb index f438b98e5..551a11091 160000 --- a/deps/rocksdb +++ b/deps/rocksdb @@ -1 +1 @@ -Subproject commit f438b98e552010613cff8684a7d84191ed785148 +Subproject commit 551a110918493a19d11243f53408b97485de1411 diff --git a/ircd/db.cc b/ircd/db.cc index 618fc1f5a..e873346e3 100644 --- a/ircd/db.cc +++ b/ircd/db.cc @@ -1292,8 +1292,15 @@ try opts->listeners.emplace_back(this->events); // Setup histogram collecting - //this->stats->stats_level_ = rocksdb::kExceptTimeForMutex; - this->stats->stats_level_ = rocksdb::kAll; + #if ROCKSDB_MAJOR > 6 \ + || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 1) + //this->stats->set_stats_level(rocksdb::kExceptTimeForMutex); + this->stats->set_stats_level(rocksdb::kAll); + #else + //this->stats->stats_level_ = rocksdb::kExceptTimeForMutex; + this->stats->stats_level_ = rocksdb::kAll; + #endif + opts->statistics = this->stats; // Setup performance metric options @@ -3244,15 +3251,15 @@ const noexcept return c->GetPrintableOptions(); } -void -ircd::db::database::cache::TEST_mark_as_data_block(const Slice &key, - size_t charge) -noexcept +#ifdef IRCD_DB_HAS_CACHE_GETCHARGE +size_t +ircd::db::database::cache::GetCharge(Handle *const handle) +const noexcept { assert(bool(c)); - return c->TEST_mark_as_data_block(key, charge); - + return c->GetCharge(handle); } +#endif /////////////////////////////////////////////////////////////////////////////// // diff --git a/ircd/db_database.h b/ircd/db_database.h index bfdb6b0e9..ef3a503cf 100644 --- a/ircd/db_database.h +++ b/ircd/db_database.h @@ -21,6 +21,12 @@ namespace ircd::db std::shared_ptr shared_from(database::column &); } +#if ROCKSDB_MAJOR > 6 \ +|| (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR > 4) \ +|| (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR == 4 && ROCKSDB_PATCH >= 6) + #define IRCD_DB_HAS_CACHE_GETCHARGE +#endif + struct ircd::db::database::cache final :std::enable_shared_from_this ,rocksdb::Cache @@ -59,7 +65,9 @@ struct ircd::db::database::cache final void ApplyToAllCacheEntries(callback, bool thread_safe) noexcept override; void EraseUnRefEntries() noexcept override; std::string GetPrintableOptions() const noexcept override; - void TEST_mark_as_data_block(const Slice &key, size_t charge) noexcept override; + #ifdef IRCD_DB_HAS_CACHE_GETCHARGE + size_t GetCharge(Handle *) const noexcept override; + #endif cache(database *const &, std::shared_ptr, diff --git a/tools/docker/ubuntu/base/Dockerfile b/tools/docker/ubuntu/base/Dockerfile index 135757936..d9eb75f49 100644 --- a/tools/docker/ubuntu/base/Dockerfile +++ b/tools/docker/ubuntu/base/Dockerfile @@ -34,7 +34,7 @@ RUN \ apt-get autoremove --purge -y && \ rm -rf /var/lib/apt/lists/* -ENV ROCKSDB_VERSION=5.17.2 +ENV ROCKSDB_VERSION=6.6.4 RUN \ cd /usr/src && \