Skip to content

Commit de06ce3

Browse files
mszeszko-metameta-codesync[bot]
authored andcommitted
Remove PutUntil API (facebook#14257)
Summary: Pull Request resolved: facebook#14257 Removes the 'unused' `PutUntil` API and updates `Put/PutWithTTL` to inline the previous implementation. Test helpers are updated to use `PutWithTTL` with computed TTL values instead. Reviewed By: xingbowang Differential Revision: D90900841 fbshipit-source-id: c6ab89fe32773f426b0bedc706bf5a2683ec31cf
1 parent a3fe685 commit de06ce3

5 files changed

Lines changed: 125 additions & 177 deletions

File tree

include/rocksdb/statistics.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ enum Tickers : uint32_t {
301301
NUMBER_RATE_LIMITER_DRAINS,
302302

303303
// BlobDB specific stats
304-
// # of Put/PutTTL/PutUntil to BlobDB. Only applicable to legacy BlobDB.
304+
// # of Put/PutWithTTL to BlobDB. Only applicable to legacy BlobDB.
305305
BLOB_DB_NUM_PUT,
306306
// # of Write to BlobDB. Only applicable to legacy BlobDB.
307307
BLOB_DB_NUM_WRITE,
@@ -651,8 +651,7 @@ enum Histograms : uint32_t {
651651
BLOB_DB_KEY_SIZE,
652652
// Size of values written to BlobDB. Only applicable to legacy BlobDB.
653653
BLOB_DB_VALUE_SIZE,
654-
// BlobDB Put/PutWithTTL/PutUntil/Write latency. Only applicable to legacy
655-
// BlobDB.
654+
// BlobDB Put/PutWithTTL/Write latency. Only applicable to legacy BlobDB.
656655
BLOB_DB_WRITE_MICROS,
657656
// BlobDB Get latency. Only applicable to legacy BlobDB.
658657
BLOB_DB_GET_MICROS,

utilities/blob_db/blob_db.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -121,20 +121,6 @@ class BlobDB : public StackableDB {
121121
return PutWithTTL(options, key, value, ttl);
122122
}
123123

124-
// Put with expiration. Key with expiration time equal to
125-
// std::numeric_limits<uint64_t>::max() means the key don't expire.
126-
virtual Status PutUntil(const WriteOptions& options, const Slice& key,
127-
const Slice& value, uint64_t expiration) = 0;
128-
virtual Status PutUntil(const WriteOptions& options,
129-
ColumnFamilyHandle* column_family, const Slice& key,
130-
const Slice& value, uint64_t expiration) {
131-
if (column_family->GetID() != DefaultColumnFamily()->GetID()) {
132-
return Status::NotSupported(
133-
"Blob DB doesn't support non-default column family.");
134-
}
135-
return PutUntil(options, key, value, expiration);
136-
}
137-
138124
using ROCKSDB_NAMESPACE::StackableDB::Get;
139125
Status Get(const ReadOptions& options, ColumnFamilyHandle* column_family,
140126
const Slice& key, PinnableSlice* value,

utilities/blob_db/blob_db_impl.cc

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,18 +1035,27 @@ Status BlobDBImpl::Write(const WriteOptions& options, WriteBatch* updates) {
10351035

10361036
Status BlobDBImpl::Put(const WriteOptions& options, const Slice& key,
10371037
const Slice& value) {
1038-
return PutUntil(options, key, value, kNoExpiration);
1038+
StopWatch write_sw(clock_, statistics_, BLOB_DB_WRITE_MICROS);
1039+
RecordTick(statistics_, BLOB_DB_NUM_PUT);
1040+
Status s;
1041+
WriteBatch batch;
1042+
{
1043+
// Release write_mutex_ before DB write to avoid race condition with
1044+
// flush begin listener, which also require write_mutex_ to sync
1045+
// blob files.
1046+
MutexLock l(&write_mutex_);
1047+
s = PutBlobValue(options, key, value, kNoExpiration, &batch);
1048+
}
1049+
if (s.ok()) {
1050+
s = db_->Write(options, &batch);
1051+
}
1052+
return s;
10391053
}
10401054

10411055
Status BlobDBImpl::PutWithTTL(const WriteOptions& options, const Slice& key,
10421056
const Slice& value, uint64_t ttl) {
10431057
uint64_t now = EpochNow();
10441058
uint64_t expiration = kNoExpiration - now > ttl ? now + ttl : kNoExpiration;
1045-
return PutUntil(options, key, value, expiration);
1046-
}
1047-
1048-
Status BlobDBImpl::PutUntil(const WriteOptions& options, const Slice& key,
1049-
const Slice& value, uint64_t expiration) {
10501059
StopWatch write_sw(clock_, statistics_, BLOB_DB_WRITE_MICROS);
10511060
RecordTick(statistics_, BLOB_DB_NUM_PUT);
10521061
Status s;

utilities/blob_db/blob_db_impl.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,6 @@ class BlobDBImpl : public BlobDB {
136136
Status PutWithTTL(const WriteOptions& options, const Slice& key,
137137
const Slice& value, uint64_t ttl) override;
138138

139-
using BlobDB::PutUntil;
140-
Status PutUntil(const WriteOptions& options, const Slice& key,
141-
const Slice& value, uint64_t expiration) override;
142-
143139
using BlobDB::CompactFiles;
144140
Status CompactFiles(
145141
const CompactionOptions& compact_options,

0 commit comments

Comments
 (0)