Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rocksdb_block_cache_numshardbits for issue 1336 #1339

Open
wants to merge 2 commits into
base: fb-mysql-8.0.28
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions mysql-test/r/mysqld--help-notwin.result
Original file line number Diff line number Diff line change
Expand Up @@ -1855,6 +1855,8 @@ The following options may be given as the first argument:
Deleting rows by primary key lookup, without reading rows
(Blind Deletes). Blind delete is disabled if the table
has secondary key
--rocksdb-block-cache-numshardbits=#
Block cache numshardbits for RocksDB
--rocksdb-block-cache-size=#
block_cache size for RocksDB
--rocksdb-block-restart-interval=#
Expand Down Expand Up @@ -3553,6 +3555,7 @@ rocksdb-binlog-ttl FALSE
rocksdb-binlog-ttl-compaction-ts-interval-secs 3600
rocksdb-binlog-ttl-compaction-ts-offset-secs 60
rocksdb-blind-delete-primary-key FALSE
rocksdb-block-cache-numshardbits -1
rocksdb-block-cache-size 536870912
rocksdb-block-restart-interval 16
rocksdb-block-size 4096
Expand Down
1 change: 1 addition & 0 deletions mysql-test/suite/rocksdb/r/rocksdb.result
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,7 @@ rocksdb_binlog_ttl OFF
rocksdb_binlog_ttl_compaction_ts_interval_secs 3600
rocksdb_binlog_ttl_compaction_ts_offset_secs 60
rocksdb_blind_delete_primary_key OFF
rocksdb_block_cache_numshardbits -1
rocksdb_block_cache_size 536870912
rocksdb_block_restart_interval 16
rocksdb_block_size 4096
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SET @start_global_value = @@global.ROCKSDB_BLOCK_CACHE_NUMSHARDBITS;
SELECT @start_global_value;
@start_global_value
-1
"Trying to set variable @@global.ROCKSDB_BLOCK_CACHE_NUMSHARDBITS to 444. It should fail because it is readonly."
SET @@global.ROCKSDB_BLOCK_CACHE_NUMSHARDBITS = 444;
ERROR HY000: Variable 'rocksdb_block_cache_numshardbits' is a read only variable
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
--source include/have_rocksdb.inc

--let $sys_var=ROCKSDB_BLOCK_CACHE_NUMSHARDBITS
--let $read_only=1
--let $session=0
--source ../include/rocksdb_sys_var.inc
14 changes: 11 additions & 3 deletions storage/rocksdb/ha_rocksdb.cc
Original file line number Diff line number Diff line change
Expand Up @@ -920,6 +920,7 @@ static long long rocksdb_compaction_sequential_deletes_file_size = 0l;
static uint32_t rocksdb_validate_tables = 1;
char *rocksdb_datadir;
static uint32_t rocksdb_max_bottom_pri_background_compactions = 0;
static int rocksdb_block_cache_numshardbits = -1;
static uint32_t rocksdb_table_stats_sampling_pct;
static uint32_t rocksdb_table_stats_recalc_threshold_pct = 10;
static unsigned long long rocksdb_table_stats_recalc_threshold_count = 100ul;
Expand Down Expand Up @@ -2052,6 +2053,13 @@ static MYSQL_SYSVAR_INT(table_cache_numshardbits,
// fails to create a cache and returns a nullptr
/* min */ 0, /* max */ 19, 0);

static MYSQL_SYSVAR_INT(block_cache_numshardbits,
rocksdb_block_cache_numshardbits,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
"Block cache numshardbits for RocksDB", nullptr,
nullptr,
/* default */ -1, /* min */ -1, /* max */ 8, 0);

static MYSQL_SYSVAR_UINT64_T(wal_ttl_seconds,
rocksdb_db_options->WAL_ttl_seconds,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
Expand Down Expand Up @@ -3039,6 +3047,7 @@ static struct SYS_VAR *rocksdb_system_variables[] = {
MYSQL_SYSVAR(keep_log_file_num),
MYSQL_SYSVAR(max_manifest_file_size),
MYSQL_SYSVAR(table_cache_numshardbits),
MYSQL_SYSVAR(block_cache_numshardbits),
MYSQL_SYSVAR(wal_ttl_seconds),
MYSQL_SYSVAR(wal_size_limit_mb),
MYSQL_SYSVAR(manifest_preallocation_size),
Expand Down Expand Up @@ -7952,13 +7961,12 @@ static int rocksdb_init_internal(void *const p) {
rocksdb_use_hyper_clock_cache
? rocksdb::HyperClockCacheOptions(
rocksdb_block_cache_size, rocksdb_tbl_options->block_size,
-1
/* num_shard_bits */,
rocksdb_block_cache_numshardbits,
false /* strict_capacity_limit */, memory_allocator)
.MakeSharedCache()

: rocksdb::NewLRUCache(
rocksdb_block_cache_size, -1 /*num_shard_bits*/,
rocksdb_block_cache_size, rocksdb_block_cache_numshardbits,
false /*strict_capcity_limit*/,
rocksdb_cache_high_pri_pool_ratio, memory_allocator);
if (rocksdb_sim_cache_size > 0) {
Expand Down