Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
Signed-off-by: Spade A <[email protected]>
  • Loading branch information
SpadeA-Tang committed Jul 27, 2023
1 parent cd5a294 commit af33283
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 22 deletions.
3 changes: 3 additions & 0 deletions db/column_family.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1677,6 +1677,9 @@ ColumnFamilyData* ColumnFamilySet::CreateColumnFamily(
if (write_buffer_manager_map_.count(name)) {
write_buffer_manager =
write_buffer_manager_[write_buffer_manager_map_[name]];
} else {
write_buffer_manager =
write_buffer_manager_[write_buffer_manager_.size() - 1];
}
ColumnFamilyData* new_cfd = new ColumnFamilyData(
id, name, dummy_versions, table_cache_, write_buffer_manager, options,
Expand Down
1 change: 1 addition & 0 deletions db/db_impl/db_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ DBImpl::DBImpl(const DBOptions& options, const std::string& dbname,
log_sync_cv_(&log_write_mutex_),
total_log_size_(0),
is_snapshot_supported_(true),
write_buffer_manager_map_(immutable_db_options_.write_buffer_manager_map),
write_thread_(immutable_db_options_),
nonmem_write_thread_(immutable_db_options_),
write_controller_(mutable_db_options_.delayed_write_rate),
Expand Down
25 changes: 14 additions & 11 deletions db/db_impl/db_impl_open.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1911,18 +1911,21 @@ Status DBImpl::Open(const DBOptions& db_options, const std::string& dbname,

for (auto* cf : *handles) {
std::string cf_name = cf->GetName();
size_t idx;
if (impl->write_buffer_manager_map_.count(cf_name)) {
size_t idx = impl->write_buffer_manager_map_[cf_name];
auto write_buffer_manager = impl->write_buffer_manager_[idx];
if (cf_name == kDefaultColumnFamilyName) {
write_buffer_manager->RegisterColumnFamily(impl,
impl->default_cf_handle_);
} else if (cf_name == kPersistentStatsColumnFamilyName) {
write_buffer_manager->RegisterColumnFamily(
impl, impl->persist_stats_cf_handle_);
} else {
write_buffer_manager->RegisterColumnFamily(impl, cf);
}
idx = impl->write_buffer_manager_map_[cf_name];
} else {
idx = impl->write_buffer_manager_.size() - 1;
}
auto write_buffer_manager = impl->write_buffer_manager_[idx];
if (cf_name == kDefaultColumnFamilyName) {
write_buffer_manager->RegisterColumnFamily(impl,
impl->default_cf_handle_);
} else if (cf_name == kPersistentStatsColumnFamilyName) {
write_buffer_manager->RegisterColumnFamily(
impl, impl->persist_stats_cf_handle_);
} else {
write_buffer_manager->RegisterColumnFamily(impl, cf);
}
}
} else {
Expand Down
11 changes: 7 additions & 4 deletions db/version_set.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5163,9 +5163,11 @@ Status VersionSet::ReduceNumberOfLevels(const std::string& dbname,
std::shared_ptr<Cache> tc(NewLRUCache(options->max_open_files - 10,
options->table_cache_numshardbits));
WriteController wc(options->delayed_write_rate);
WriteBufferManager wb(options->db_write_buffer_size);
VersionSet versions(dbname, &db_options, file_options, tc.get(), &wb, &wc,
nullptr /*BlockCacheTracer*/, nullptr /*IOTracer*/,
std::vector<WriteBufferManager*> wbms{
new WriteBufferManager(options->db_write_buffer_size)};
std::unordered_map<std::string, size_t> wbmm;
VersionSet versions(dbname, &db_options, file_options, tc.get(), wbms, wbmm,
&wc, nullptr /*BlockCacheTracer*/, nullptr /*IOTracer*/,
/*db_session_id*/ "");
Status status;

Expand Down Expand Up @@ -6050,7 +6052,8 @@ ReactiveVersionSet::ReactiveVersionSet(
WriteController* write_controller,
const std::shared_ptr<IOTracer>& io_tracer)
: VersionSet(dbname, _db_options, _file_options, table_cache,
write_buffer_manager, write_controller,
write_buffer_manager, write_buffer_manager_map,
write_controller,
/*block_cache_tracer=*/nullptr, io_tracer,
/*db_session_id*/ "") {}

Expand Down
13 changes: 7 additions & 6 deletions db/version_set.h
Original file line number Diff line number Diff line change
Expand Up @@ -1488,12 +1488,13 @@ class VersionSet {
// reconstruct and install versions.
class ReactiveVersionSet : public VersionSet {
public:
ReactiveVersionSet(const std::string& dbname,
const ImmutableDBOptions* _db_options,
const FileOptions& _file_options, Cache* table_cache,
std::vector<WriteBufferManager*> write_buffer_manager,
WriteController* write_controller,
const std::shared_ptr<IOTracer>& io_tracer);
ReactiveVersionSet(
const std::string& dbname, const ImmutableDBOptions* _db_options,
const FileOptions& _file_options, Cache* table_cache,
std::vector<WriteBufferManager*> write_buffer_manager,
std::unordered_map<std::string, size_t> write_buffer_manager_map,
WriteController* write_controller,
const std::shared_ptr<IOTracer>& io_tracer);

~ReactiveVersionSet() override;

Expand Down
1 change: 0 additions & 1 deletion include/rocksdb/db.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ class WriteBatch;

extern const std::string kDefaultColumnFamilyName;
extern const std::string kPersistentStatsColumnFamilyName;
extern const std::string kLockColumnFamilyName;
struct ColumnFamilyDescriptor {
std::string name;
ColumnFamilyOptions options;
Expand Down

0 comments on commit af33283

Please sign in to comment.