Skip to content

Commit 6b5ccbb

Browse files
mszeszko-metameta-codesync[bot]
authored andcommitted
Remove inline values support (facebook#14270)
Summary: Pull Request resolved: facebook#14270 Legacy BlobDB's inline values feature (storing small values directly in the LSM tree via `min_blob_size` threshold) is unused in production - all deployments use `min_blob_size = 0`. This removes the functionality entirely. Changes: - Remove `min_blob_size` from `BlobDBOptions` - Remove `IsInlined()` check from compaction filter (dead code path) - Remove inline-related statistics (`BLOB_DB_WRITE_INLINED*`) - Remove `InlineSmallValues` test - Update stale comments referencing inlined data Reviewed By: xingbowang Differential Revision: D91088985 fbshipit-source-id: ec67848ece1a7dc071ca8e8a17faebb435394733
1 parent 80f3d86 commit 6b5ccbb

13 files changed

Lines changed: 71 additions & 258 deletions

File tree

db_stress_tool/db_stress_common.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ DECLARE_uint32(occ_lock_bucket_count);
297297

298298
// Options for StackableDB-based BlobDB
299299
DECLARE_bool(use_blob_db);
300-
DECLARE_uint64(blob_db_min_blob_size);
301300
DECLARE_uint64(blob_db_bytes_per_sync);
302301
DECLARE_uint64(blob_db_file_size);
303302
DECLARE_bool(blob_db_enable_gc);

db_stress_tool/db_stress_gflags.cc

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -425,12 +425,6 @@ DEFINE_bool(enable_write_thread_adaptive_yield,
425425
// Options for StackableDB-based BlobDB
426426
DEFINE_bool(use_blob_db, false, "[Stacked BlobDB] Use BlobDB.");
427427

428-
DEFINE_uint64(
429-
blob_db_min_blob_size,
430-
ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().min_blob_size,
431-
"[Stacked BlobDB] Smallest blob to store in a file. Blobs "
432-
"smaller than this will be inlined with the key in the LSM tree.");
433-
434428
DEFINE_uint64(
435429
blob_db_bytes_per_sync,
436430
ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().bytes_per_sync,

db_stress_tool/db_stress_test_base.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3844,7 +3844,6 @@ void StressTest::Open(SharedState* shared, bool reopen) {
38443844
// StackableDB-based BlobDB
38453845
if (FLAGS_use_blob_db) {
38463846
blob_db::BlobDBOptions blob_db_options;
3847-
blob_db_options.min_blob_size = FLAGS_blob_db_min_blob_size;
38483847
blob_db_options.bytes_per_sync = FLAGS_blob_db_bytes_per_sync;
38493848
blob_db_options.blob_file_size = FLAGS_blob_db_file_size;
38503849
blob_db_options.enable_garbage_collection = FLAGS_blob_db_enable_gc;

include/rocksdb/statistics.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -326,12 +326,12 @@ enum Tickers : uint32_t {
326326
// # of bytes (keys + value) read from BlobDB. Only applicable to legacy
327327
// BlobDB.
328328
BLOB_DB_BYTES_READ,
329-
// # of keys written by BlobDB as non-TTL inlined value. Only applicable to
330-
// legacy BlobDB.
331-
BLOB_DB_WRITE_INLINED,
332-
// # of keys written by BlobDB as TTL inlined value. Only applicable to legacy
333-
// BlobDB.
334-
BLOB_DB_WRITE_INLINED_TTL,
329+
// Deprecated: min_blob_size is no longer configurable. Retained to avoid
330+
// shifting enum values.
331+
BLOB_DB_WRITE_INLINED_DEPRECATED,
332+
// Deprecated: min_blob_size is no longer configurable. Retained to avoid
333+
// shifting enum values.
334+
BLOB_DB_WRITE_INLINED_TTL_DEPRECATED,
335335
// # of keys written by BlobDB as non-TTL blob value. Only applicable to
336336
// legacy BlobDB.
337337
BLOB_DB_WRITE_BLOB,

java/rocksjni/portal.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5101,9 +5101,9 @@ class TickerTypeJni {
51015101
return -0x1;
51025102
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_BYTES_READ:
51035103
return -0x2;
5104-
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED:
5104+
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_DEPRECATED:
51055105
return -0x3;
5106-
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_TTL:
5106+
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_TTL_DEPRECATED:
51075107
return -0x4;
51085108
case ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_BLOB:
51095109
return -0x5;
@@ -5594,9 +5594,9 @@ class TickerTypeJni {
55945594
case -0x2:
55955595
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_BYTES_READ;
55965596
case -0x3:
5597-
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED;
5597+
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_DEPRECATED;
55985598
case -0x4:
5599-
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_TTL;
5599+
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_INLINED_TTL_DEPRECATED;
56005600
case -0x5:
56015601
return ROCKSDB_NAMESPACE::Tickers::BLOB_DB_WRITE_BLOB;
56025602
case -0x6:

java/src/main/java/org/rocksdb/TickerType.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -550,14 +550,14 @@ public enum TickerType {
550550
BLOB_DB_BYTES_READ((byte) -0x2),
551551

552552
/**
553-
* # of keys written by BlobDB as non-TTL inlined value.
553+
* Deprecated and unused. Retained to avoid shifting enum values.
554554
*/
555-
BLOB_DB_WRITE_INLINED((byte) -0x3),
555+
@Deprecated BLOB_DB_WRITE_INLINED((byte) -0x3),
556556

557557
/**
558-
* # of keys written by BlobDB as TTL inlined value.
558+
* Deprecated and unused. Retained to avoid shifting enum values.
559559
*/
560-
BLOB_DB_WRITE_INLINED_TTL((byte) -0x4),
560+
@Deprecated BLOB_DB_WRITE_INLINED_TTL((byte) -0x4),
561561

562562
/**
563563
* # of keys written by BlobDB as non-TTL blob value.

monitoring/statistics.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
169169
{BLOB_DB_NUM_KEYS_READ, "rocksdb.blobdb.num.keys.read"},
170170
{BLOB_DB_BYTES_WRITTEN, "rocksdb.blobdb.bytes.written"},
171171
{BLOB_DB_BYTES_READ, "rocksdb.blobdb.bytes.read"},
172-
{BLOB_DB_WRITE_INLINED, "rocksdb.blobdb.write.inlined"},
173-
{BLOB_DB_WRITE_INLINED_TTL, "rocksdb.blobdb.write.inlined.ttl"},
172+
{BLOB_DB_WRITE_INLINED_DEPRECATED, "rocksdb.blobdb.write.inlined"},
173+
{BLOB_DB_WRITE_INLINED_TTL_DEPRECATED, "rocksdb.blobdb.write.inlined.ttl"},
174174
{BLOB_DB_WRITE_BLOB, "rocksdb.blobdb.write.blob"},
175175
{BLOB_DB_WRITE_BLOB_TTL, "rocksdb.blobdb.write.blob.ttl"},
176176
{BLOB_DB_BLOB_FILE_BYTES_WRITTEN, "rocksdb.blobdb.blob.file.bytes.written"},

tools/db_bench_tool.cc

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,12 +1069,6 @@ DEFINE_uint64(
10691069
ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().ttl_range_secs,
10701070
"[Stacked BlobDB] TTL bucket size to use when creating blob files.");
10711071

1072-
DEFINE_uint64(
1073-
blob_db_min_blob_size,
1074-
ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().min_blob_size,
1075-
"[Stacked BlobDB] Smallest blob to store in a file. Blobs "
1076-
"smaller than this will be inlined with the key in the LSM tree.");
1077-
10781072
DEFINE_uint64(blob_db_bytes_per_sync,
10791073
ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().bytes_per_sync,
10801074
"[Stacked BlobDB] Bytes to sync blob file at.");
@@ -5190,7 +5184,6 @@ class Benchmark {
51905184
blob_db_options.garbage_collection_cutoff = FLAGS_blob_db_gc_cutoff;
51915185
blob_db_options.max_db_size = FLAGS_blob_db_max_db_size;
51925186
blob_db_options.ttl_range_secs = FLAGS_blob_db_ttl_range_secs;
5193-
blob_db_options.min_blob_size = FLAGS_blob_db_min_blob_size;
51945187
blob_db_options.bytes_per_sync = FLAGS_blob_db_bytes_per_sync;
51955188
blob_db_options.blob_file_size = FLAGS_blob_db_file_size;
51965189
blob_db::BlobDB* ptr = nullptr;

utilities/blob_db/blob_compaction_filter.cc

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ CompactionFilter::Decision BlobIndexCompactionFilterBase::FilterV2(
3232
if (ucf == nullptr) {
3333
return Decision::kKeep;
3434
}
35-
// Apply user compaction filter for inlined data.
35+
// Apply user compaction filter for non-blob data.
3636
CompactionFilter::Decision decision =
3737
ucf->FilterV2(level, key, value_type, value, new_value, skip_until);
3838
if (decision == Decision::kChangeValue) {
@@ -52,8 +52,7 @@ CompactionFilter::Decision BlobIndexCompactionFilterBase::FilterV2(
5252
expired_size_ += key.size() + value.size();
5353
return Decision::kRemove;
5454
}
55-
if (!blob_index.IsInlined() &&
56-
blob_index.file_number() < context_.next_file_number &&
55+
if (blob_index.file_number() < context_.next_file_number &&
5756
context_.current_blob_files.count(blob_index.file_number()) == 0) {
5857
evicted_count_++;
5958
evicted_size_ += key.size() + value.size();
@@ -88,13 +87,6 @@ CompactionFilter::Decision BlobIndexCompactionFilterBase::FilterV2(
8887

8988
CompactionFilter::Decision BlobIndexCompactionFilterBase::HandleValueChange(
9089
const Slice& key, std::string* new_value) const {
91-
BlobDBImpl* const blob_db_impl = context_.blob_db_impl;
92-
assert(blob_db_impl);
93-
94-
if (new_value->size() < blob_db_impl->bdb_options_.min_blob_size) {
95-
// Keep new_value inlined.
96-
return Decision::kChangeValue;
97-
}
9890
if (!OpenNewBlobFileIfNeeded()) {
9991
return Decision::kIOError;
10092
}
@@ -295,12 +287,6 @@ CompactionFilter::BlobDecision BlobIndexCompactionFilterGC::PrepareBlobOutput(
295287
return BlobDecision::kCorruption;
296288
}
297289

298-
if (blob_index.IsInlined()) {
299-
gc_stats_.AddBlob(blob_index.value().size());
300-
301-
return BlobDecision::kKeep;
302-
}
303-
304290
gc_stats_.AddBlob(blob_index.size());
305291

306292
if (blob_index.HasTTL()) {

utilities/blob_db/blob_db.cc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ void BlobDBOptions::Dump(Logger* log) const {
8080
ROCKS_LOG_HEADER(
8181
log, " BlobDBOptions.ttl_range_secs: %" PRIu64,
8282
ttl_range_secs);
83-
ROCKS_LOG_HEADER(
84-
log, " BlobDBOptions.min_blob_size: %" PRIu64,
85-
min_blob_size);
8683
ROCKS_LOG_HEADER(
8784
log, " BlobDBOptions.bytes_per_sync: %" PRIu64,
8885
bytes_per_sync);

0 commit comments

Comments
 (0)