Remove ImmutableCFOptions from public API
Summary: There's no reference to ImmutableCFOptions elsewhere in /include/rocksdb. ImmutableCFOptions was introduced in this commit (5665e5e285
) but later its reference in /include/rocksdb/table.h is removed.
Test Plan:
make all check
Reviewers: IslamAbdelRahman, sdong, yhchiang
Reviewed By: yhchiang
Subscribers: yhchiang, andrewkr, dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D63177
This commit is contained in:
parent
80c75593ed
commit
a88677d2cf
@ -2,7 +2,8 @@
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
### Public API Change
|
### Public API Change
|
||||||
* CancelAllBackgroundWork() flushes all memtables for databases containing writes that have bypassed the WAL (writes issued with WriteOptions::disableWAL=true) before shutting down background threads.
|
* CancelAllBackgroundWork() flushes all memtables for databases containing writes that have bypassed the WAL (writes issued with WriteOptions::disableWAL=true) before shutting down background threads.
|
||||||
* Merge options source_compaction_factor, max_grandparent_overlap_bytes and expanded_compaction_factor into max_compaction_bytes
|
* Merge options source_compaction_factor, max_grandparent_overlap_bytes and expanded_compaction_factor into max_compaction_bytes.
|
||||||
|
* Remove ImmutableCFOptions.
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
* Introduce NewClockCache, which is based on CLOCK algorithm with better concurrent performance in some cases. It can be used to replace the default LRU-based block cache and table cache. To use it, RocksDB need to be linked with TBB lib.
|
* Introduce NewClockCache, which is based on CLOCK algorithm with better concurrent performance in some cases. It can be used to replace the default LRU-based block cache and table cache. To use it, RocksDB need to be linked with TBB lib.
|
||||||
|
@ -12,14 +12,13 @@
|
|||||||
#include "db/table_properties_collector.h"
|
#include "db/table_properties_collector.h"
|
||||||
#include "rocksdb/comparator.h"
|
#include "rocksdb/comparator.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/listener.h"
|
#include "rocksdb/listener.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "rocksdb/table_properties.h"
|
#include "rocksdb/table_properties.h"
|
||||||
#include "rocksdb/types.h"
|
#include "rocksdb/types.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/event_logger.h"
|
#include "util/event_logger.h"
|
||||||
#include "util/mutable_cf_options.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -15,15 +15,15 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
|
||||||
#include "db/memtable_list.h"
|
#include "db/memtable_list.h"
|
||||||
#include "db/write_batch_internal.h"
|
|
||||||
#include "db/write_controller.h"
|
|
||||||
#include "db/table_cache.h"
|
#include "db/table_cache.h"
|
||||||
#include "db/table_properties_collector.h"
|
#include "db/table_properties_collector.h"
|
||||||
|
#include "db/write_batch_internal.h"
|
||||||
|
#include "db/write_controller.h"
|
||||||
#include "rocksdb/compaction_job_stats.h"
|
#include "rocksdb/compaction_job_stats.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "util/mutable_cf_options.h"
|
#include "util/cf_options.h"
|
||||||
#include "util/thread_local.h"
|
#include "util/thread_local.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include "db/version_set.h"
|
||||||
#include "util/arena.h"
|
#include "util/arena.h"
|
||||||
#include "util/autovector.h"
|
#include "util/autovector.h"
|
||||||
#include "util/mutable_cf_options.h"
|
#include "util/cf_options.h"
|
||||||
#include "db/version_set.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -20,8 +20,7 @@
|
|||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "util/mutable_cf_options.h"
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -10,11 +10,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "db/dbformat.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/iterator.h"
|
#include "rocksdb/iterator.h"
|
||||||
#include "db/dbformat.h"
|
|
||||||
#include "util/arena.h"
|
#include "util/arena.h"
|
||||||
#include "util/autovector.h"
|
#include "util/autovector.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -15,17 +15,16 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "db/dbformat.h"
|
#include "db/dbformat.h"
|
||||||
|
#include "db/memtable_allocator.h"
|
||||||
#include "db/skiplist.h"
|
#include "db/skiplist.h"
|
||||||
#include "db/version_edit.h"
|
#include "db/version_edit.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/memtablerep.h"
|
#include "rocksdb/memtablerep.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
#include "util/cf_options.h"
|
||||||
#include "db/memtable_allocator.h"
|
|
||||||
#include "util/concurrent_arena.h"
|
#include "util/concurrent_arena.h"
|
||||||
#include "util/dynamic_bloom.h"
|
#include "util/dynamic_bloom.h"
|
||||||
#include "util/instrumented_mutex.h"
|
#include "util/instrumented_mutex.h"
|
||||||
#include "util/mutable_cf_options.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -78,10 +78,10 @@
|
|||||||
#include "rocksdb/comparator.h"
|
#include "rocksdb/comparator.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/write_buffer_manager.h"
|
#include "rocksdb/write_buffer_manager.h"
|
||||||
#include "table/scoped_arena_iterator.h"
|
#include "table/scoped_arena_iterator.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
#include "util/string_util.h"
|
#include "util/string_util.h"
|
||||||
|
|
||||||
|
@ -18,9 +18,10 @@
|
|||||||
#include "port/port.h"
|
#include "port/port.h"
|
||||||
#include "rocksdb/cache.h"
|
#include "rocksdb/cache.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/table.h"
|
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
|
#include "rocksdb/table.h"
|
||||||
#include "table/table_reader.h"
|
#include "table/table_reader.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -12,12 +12,12 @@
|
|||||||
#include "db/db_impl.h"
|
#include "db/db_impl.h"
|
||||||
#include "db/dbformat.h"
|
#include "db/dbformat.h"
|
||||||
#include "db/table_properties_collector.h"
|
#include "db/table_properties_collector.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/table.h"
|
#include "rocksdb/table.h"
|
||||||
#include "table/block_based_table_factory.h"
|
#include "table/block_based_table_factory.h"
|
||||||
#include "table/meta_blocks.h"
|
#include "table/meta_blocks.h"
|
||||||
#include "table/plain_table_factory.h"
|
#include "table/plain_table_factory.h"
|
||||||
#include "table/table_builder.h"
|
#include "table/table_builder.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/coding.h"
|
#include "util/coding.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
#include "util/testharness.h"
|
#include "util/testharness.h"
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/iterator.h"
|
#include "rocksdb/iterator.h"
|
||||||
#include "rocksdb/listener.h"
|
#include "rocksdb/listener.h"
|
||||||
#include "rocksdb/metadata.h"
|
#include "rocksdb/metadata.h"
|
||||||
|
@ -1,107 +0,0 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
#include "rocksdb/options.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
|
||||||
|
|
||||||
// ImmutableCFOptions is a data struct used by RocksDB internal. It contains a
|
|
||||||
// subset of Options that should not be changed during the entire lifetime
|
|
||||||
// of DB. You shouldn't need to access this data structure unless you are
|
|
||||||
// implementing a new TableFactory. Raw pointers defined in this struct do
|
|
||||||
// not have ownership to the data they point to. Options contains shared_ptr
|
|
||||||
// to these data.
|
|
||||||
struct ImmutableCFOptions {
|
|
||||||
explicit ImmutableCFOptions(const Options& options);
|
|
||||||
|
|
||||||
CompactionStyle compaction_style;
|
|
||||||
|
|
||||||
CompactionOptionsUniversal compaction_options_universal;
|
|
||||||
CompactionOptionsFIFO compaction_options_fifo;
|
|
||||||
|
|
||||||
const SliceTransform* prefix_extractor;
|
|
||||||
|
|
||||||
const Comparator* comparator;
|
|
||||||
|
|
||||||
MergeOperator* merge_operator;
|
|
||||||
|
|
||||||
const CompactionFilter* compaction_filter;
|
|
||||||
|
|
||||||
CompactionFilterFactory* compaction_filter_factory;
|
|
||||||
|
|
||||||
bool inplace_update_support;
|
|
||||||
|
|
||||||
UpdateStatus (*inplace_callback)(char* existing_value,
|
|
||||||
uint32_t* existing_value_size,
|
|
||||||
Slice delta_value,
|
|
||||||
std::string* merged_value);
|
|
||||||
|
|
||||||
Logger* info_log;
|
|
||||||
|
|
||||||
Statistics* statistics;
|
|
||||||
|
|
||||||
InfoLogLevel info_log_level;
|
|
||||||
|
|
||||||
Env* env;
|
|
||||||
|
|
||||||
uint64_t delayed_write_rate;
|
|
||||||
|
|
||||||
// Allow the OS to mmap file for reading sst tables. Default: false
|
|
||||||
bool allow_mmap_reads;
|
|
||||||
|
|
||||||
// Allow the OS to mmap file for writing. Default: false
|
|
||||||
bool allow_mmap_writes;
|
|
||||||
|
|
||||||
std::vector<DbPath> db_paths;
|
|
||||||
|
|
||||||
MemTableRepFactory* memtable_factory;
|
|
||||||
|
|
||||||
TableFactory* table_factory;
|
|
||||||
|
|
||||||
Options::TablePropertiesCollectorFactories
|
|
||||||
table_properties_collector_factories;
|
|
||||||
|
|
||||||
bool advise_random_on_open;
|
|
||||||
|
|
||||||
// This options is required by PlainTableReader. May need to move it
|
|
||||||
// to PlainTalbeOptions just like bloom_bits_per_key
|
|
||||||
uint32_t bloom_locality;
|
|
||||||
|
|
||||||
bool purge_redundant_kvs_while_flush;
|
|
||||||
|
|
||||||
bool disable_data_sync;
|
|
||||||
|
|
||||||
bool use_fsync;
|
|
||||||
|
|
||||||
std::vector<CompressionType> compression_per_level;
|
|
||||||
|
|
||||||
CompressionType bottommost_compression;
|
|
||||||
|
|
||||||
CompressionOptions compression_opts;
|
|
||||||
|
|
||||||
bool level_compaction_dynamic_level_bytes;
|
|
||||||
|
|
||||||
Options::AccessHint access_hint_on_compaction_start;
|
|
||||||
|
|
||||||
bool new_table_reader_for_compaction_inputs;
|
|
||||||
|
|
||||||
size_t compaction_readahead_size;
|
|
||||||
|
|
||||||
int num_levels;
|
|
||||||
|
|
||||||
bool optimize_filters_for_hits;
|
|
||||||
|
|
||||||
// A vector of EventListeners which call-back functions will be called
|
|
||||||
// when specific RocksDB event happens.
|
|
||||||
std::vector<std::shared_ptr<EventListener>> listeners;
|
|
||||||
|
|
||||||
std::shared_ptr<Cache> row_cache;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace rocksdb
|
|
@ -6,7 +6,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/types.h"
|
#include "rocksdb/types.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
|
|
||||||
#include "rocksdb/cache.h"
|
#include "rocksdb/cache.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/iterator.h"
|
#include "rocksdb/iterator.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
@ -435,7 +434,6 @@ class TableFactory {
|
|||||||
// (4) When running Repairer, it creates a table builder to convert logs to
|
// (4) When running Repairer, it creates a table builder to convert logs to
|
||||||
// SST files (In Repairer::ConvertLogToTable() by calling BuildTable())
|
// SST files (In Repairer::ConvertLogToTable() by calling BuildTable())
|
||||||
//
|
//
|
||||||
// ImmutableCFOptions is a subset of Options that can not be altered.
|
|
||||||
// Multiple configured can be acceseed from there, including and not limited
|
// Multiple configured can be acceseed from there, including and not limited
|
||||||
// to compression options. file is a handle of a writable file.
|
// to compression options. file is a handle of a writable file.
|
||||||
// It is the caller's responsibility to keep the file open and close the file
|
// It is the caller's responsibility to keep the file open and close the file
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
#include "include/org_rocksdb_WriteBatch_Handler.h"
|
#include "include/org_rocksdb_WriteBatch_Handler.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/memtablerep.h"
|
#include "rocksdb/memtablerep.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "rocksdb/write_batch.h"
|
#include "rocksdb/write_batch.h"
|
||||||
|
@ -15,13 +15,13 @@
|
|||||||
#include "include/org_rocksdb_WriteBatch_Handler.h"
|
#include "include/org_rocksdb_WriteBatch_Handler.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/memtablerep.h"
|
#include "rocksdb/memtablerep.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "rocksdb/write_batch.h"
|
#include "rocksdb/write_batch.h"
|
||||||
#include "rocksdb/write_buffer_manager.h"
|
#include "rocksdb/write_buffer_manager.h"
|
||||||
#include "rocksjni/portal.h"
|
#include "rocksjni/portal.h"
|
||||||
#include "table/scoped_arena_iterator.h"
|
#include "table/scoped_arena_iterator.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/logging.h"
|
#include "util/logging.h"
|
||||||
#include "util/testharness.h"
|
#include "util/testharness.h"
|
||||||
|
|
||||||
|
2
src.mk
2
src.mk
@ -156,12 +156,12 @@ LIB_SOURCES = \
|
|||||||
utilities/date_tiered/date_tiered_db_impl.cc \
|
utilities/date_tiered/date_tiered_db_impl.cc \
|
||||||
utilities/write_batch_with_index/write_batch_with_index.cc \
|
utilities/write_batch_with_index/write_batch_with_index.cc \
|
||||||
utilities/write_batch_with_index/write_batch_with_index_internal.cc \
|
utilities/write_batch_with_index/write_batch_with_index_internal.cc \
|
||||||
|
util/cf_options.cc \
|
||||||
util/event_logger.cc \
|
util/event_logger.cc \
|
||||||
util/log_buffer.cc \
|
util/log_buffer.cc \
|
||||||
util/logging.cc \
|
util/logging.cc \
|
||||||
util/memenv.cc \
|
util/memenv.cc \
|
||||||
util/murmurhash.cc \
|
util/murmurhash.cc \
|
||||||
util/mutable_cf_options.cc \
|
|
||||||
util/options.cc \
|
util/options.cc \
|
||||||
util/options_helper.cc \
|
util/options_helper.cc \
|
||||||
util/options_parser.cc \
|
util/options_parser.cc \
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "rocksdb/table.h"
|
#include "rocksdb/table.h"
|
||||||
#include "table/table_properties_internal.h"
|
#include "table/table_properties_internal.h"
|
||||||
#include "table/table_reader.h"
|
#include "table/table_reader.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/coding.h"
|
#include "util/coding.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "table/table_reader.h"
|
#include "table/table_reader.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
#include "port/port.h" // noexcept
|
#include "port/port.h" // noexcept
|
||||||
#include "table/persistent_cache_helper.h"
|
#include "table/persistent_cache_helper.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -12,10 +12,11 @@
|
|||||||
|
|
||||||
#include "db/dbformat.h"
|
#include "db/dbformat.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "util/murmurhash.h"
|
|
||||||
#include "util/hash.h"
|
|
||||||
#include "util/arena.h"
|
#include "util/arena.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
|
#include "util/hash.h"
|
||||||
#include "util/histogram.h"
|
#include "util/histogram.h"
|
||||||
|
#include "util/murmurhash.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
#include "db/table_properties_collector.h"
|
#include "db/table_properties_collector.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/table_properties.h"
|
#include "rocksdb/table_properties.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
#include "util/mutable_cf_options.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include "db/write_batch_internal.h"
|
#include "db/write_batch_internal.h"
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/iterator.h"
|
#include "rocksdb/iterator.h"
|
||||||
#include "rocksdb/slice_transform.h"
|
#include "rocksdb/slice_transform.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
@ -35,8 +34,9 @@
|
|||||||
#include "table/meta_blocks.h"
|
#include "table/meta_blocks.h"
|
||||||
#include "table/plain_table_factory.h"
|
#include "table/plain_table_factory.h"
|
||||||
#include "table/table_reader.h"
|
#include "table/table_reader.h"
|
||||||
#include "util/random.h"
|
#include "util/cf_options.h"
|
||||||
#include "util/compression.h"
|
#include "util/compression.h"
|
||||||
|
#include "util/random.h"
|
||||||
|
|
||||||
#include "port/port.h"
|
#include "port/port.h"
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "db/dbformat.h"
|
#include "db/dbformat.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// LICENSE file in the root directory of this source tree. An additional grant
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
|
||||||
#include "util/mutable_cf_options.h"
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
#ifndef __STDC_FORMAT_MACROS
|
#ifndef __STDC_FORMAT_MACROS
|
||||||
#define __STDC_FORMAT_MACROS
|
#define __STDC_FORMAT_MACROS
|
||||||
@ -16,10 +16,50 @@
|
|||||||
#include "port/port.h"
|
#include "port/port.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
ImmutableCFOptions::ImmutableCFOptions(const Options& options)
|
||||||
|
: compaction_style(options.compaction_style),
|
||||||
|
compaction_options_universal(options.compaction_options_universal),
|
||||||
|
compaction_options_fifo(options.compaction_options_fifo),
|
||||||
|
prefix_extractor(options.prefix_extractor.get()),
|
||||||
|
comparator(options.comparator),
|
||||||
|
merge_operator(options.merge_operator.get()),
|
||||||
|
compaction_filter(options.compaction_filter),
|
||||||
|
compaction_filter_factory(options.compaction_filter_factory.get()),
|
||||||
|
inplace_update_support(options.inplace_update_support),
|
||||||
|
inplace_callback(options.inplace_callback),
|
||||||
|
info_log(options.info_log.get()),
|
||||||
|
statistics(options.statistics.get()),
|
||||||
|
env(options.env),
|
||||||
|
delayed_write_rate(options.delayed_write_rate),
|
||||||
|
allow_mmap_reads(options.allow_mmap_reads),
|
||||||
|
allow_mmap_writes(options.allow_mmap_writes),
|
||||||
|
db_paths(options.db_paths),
|
||||||
|
memtable_factory(options.memtable_factory.get()),
|
||||||
|
table_factory(options.table_factory.get()),
|
||||||
|
table_properties_collector_factories(
|
||||||
|
options.table_properties_collector_factories),
|
||||||
|
advise_random_on_open(options.advise_random_on_open),
|
||||||
|
bloom_locality(options.bloom_locality),
|
||||||
|
purge_redundant_kvs_while_flush(options.purge_redundant_kvs_while_flush),
|
||||||
|
disable_data_sync(options.disableDataSync),
|
||||||
|
use_fsync(options.use_fsync),
|
||||||
|
compression_per_level(options.compression_per_level),
|
||||||
|
bottommost_compression(options.bottommost_compression),
|
||||||
|
compression_opts(options.compression_opts),
|
||||||
|
level_compaction_dynamic_level_bytes(
|
||||||
|
options.level_compaction_dynamic_level_bytes),
|
||||||
|
access_hint_on_compaction_start(options.access_hint_on_compaction_start),
|
||||||
|
new_table_reader_for_compaction_inputs(
|
||||||
|
options.new_table_reader_for_compaction_inputs),
|
||||||
|
compaction_readahead_size(options.compaction_readahead_size),
|
||||||
|
num_levels(options.num_levels),
|
||||||
|
optimize_filters_for_hits(options.optimize_filters_for_hits),
|
||||||
|
listeners(options.listeners),
|
||||||
|
row_cache(options.row_cache) {}
|
||||||
|
|
||||||
// Multiple two operands. If they overflow, return op1.
|
// Multiple two operands. If they overflow, return op1.
|
||||||
uint64_t MultiplyCheckOverflow(uint64_t op1, int op2) {
|
uint64_t MultiplyCheckOverflow(uint64_t op1, int op2) {
|
||||||
if (op1 == 0) {
|
if (op1 == 0) {
|
@ -5,13 +5,105 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "util/compression.h"
|
#include "util/compression.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
// ImmutableCFOptions is a data struct used by RocksDB internal. It contains a
|
||||||
|
// subset of Options that should not be changed during the entire lifetime
|
||||||
|
// of DB. Raw pointers defined in this struct do not have ownership to the data
|
||||||
|
// they point to. Options contains shared_ptr to these data.
|
||||||
|
struct ImmutableCFOptions {
|
||||||
|
explicit ImmutableCFOptions(const Options& options);
|
||||||
|
|
||||||
|
CompactionStyle compaction_style;
|
||||||
|
|
||||||
|
CompactionOptionsUniversal compaction_options_universal;
|
||||||
|
CompactionOptionsFIFO compaction_options_fifo;
|
||||||
|
|
||||||
|
const SliceTransform* prefix_extractor;
|
||||||
|
|
||||||
|
const Comparator* comparator;
|
||||||
|
|
||||||
|
MergeOperator* merge_operator;
|
||||||
|
|
||||||
|
const CompactionFilter* compaction_filter;
|
||||||
|
|
||||||
|
CompactionFilterFactory* compaction_filter_factory;
|
||||||
|
|
||||||
|
bool inplace_update_support;
|
||||||
|
|
||||||
|
UpdateStatus (*inplace_callback)(char* existing_value,
|
||||||
|
uint32_t* existing_value_size,
|
||||||
|
Slice delta_value,
|
||||||
|
std::string* merged_value);
|
||||||
|
|
||||||
|
Logger* info_log;
|
||||||
|
|
||||||
|
Statistics* statistics;
|
||||||
|
|
||||||
|
InfoLogLevel info_log_level;
|
||||||
|
|
||||||
|
Env* env;
|
||||||
|
|
||||||
|
uint64_t delayed_write_rate;
|
||||||
|
|
||||||
|
// Allow the OS to mmap file for reading sst tables. Default: false
|
||||||
|
bool allow_mmap_reads;
|
||||||
|
|
||||||
|
// Allow the OS to mmap file for writing. Default: false
|
||||||
|
bool allow_mmap_writes;
|
||||||
|
|
||||||
|
std::vector<DbPath> db_paths;
|
||||||
|
|
||||||
|
MemTableRepFactory* memtable_factory;
|
||||||
|
|
||||||
|
TableFactory* table_factory;
|
||||||
|
|
||||||
|
Options::TablePropertiesCollectorFactories
|
||||||
|
table_properties_collector_factories;
|
||||||
|
|
||||||
|
bool advise_random_on_open;
|
||||||
|
|
||||||
|
// This options is required by PlainTableReader. May need to move it
|
||||||
|
// to PlainTalbeOptions just like bloom_bits_per_key
|
||||||
|
uint32_t bloom_locality;
|
||||||
|
|
||||||
|
bool purge_redundant_kvs_while_flush;
|
||||||
|
|
||||||
|
bool disable_data_sync;
|
||||||
|
|
||||||
|
bool use_fsync;
|
||||||
|
|
||||||
|
std::vector<CompressionType> compression_per_level;
|
||||||
|
|
||||||
|
CompressionType bottommost_compression;
|
||||||
|
|
||||||
|
CompressionOptions compression_opts;
|
||||||
|
|
||||||
|
bool level_compaction_dynamic_level_bytes;
|
||||||
|
|
||||||
|
Options::AccessHint access_hint_on_compaction_start;
|
||||||
|
|
||||||
|
bool new_table_reader_for_compaction_inputs;
|
||||||
|
|
||||||
|
size_t compaction_readahead_size;
|
||||||
|
|
||||||
|
int num_levels;
|
||||||
|
|
||||||
|
bool optimize_filters_for_hits;
|
||||||
|
|
||||||
|
// A vector of EventListeners which call-back functions will be called
|
||||||
|
// when specific RocksDB event happens.
|
||||||
|
std::vector<std::shared_ptr<EventListener>> listeners;
|
||||||
|
|
||||||
|
std::shared_ptr<Cache> row_cache;
|
||||||
|
};
|
||||||
|
|
||||||
struct MutableCFOptions {
|
struct MutableCFOptions {
|
||||||
MutableCFOptions(const Options& options, const ImmutableCFOptions& ioptions)
|
MutableCFOptions(const Options& options, const ImmutableCFOptions& ioptions)
|
||||||
: write_buffer_size(options.write_buffer_size),
|
: write_buffer_size(options.write_buffer_size),
|
@ -8,7 +8,6 @@
|
|||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||||
|
|
||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/immutable_options.h"
|
|
||||||
|
|
||||||
#ifndef __STDC_FORMAT_MACROS
|
#ifndef __STDC_FORMAT_MACROS
|
||||||
#define __STDC_FORMAT_MACROS
|
#define __STDC_FORMAT_MACROS
|
||||||
@ -36,47 +35,6 @@
|
|||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
ImmutableCFOptions::ImmutableCFOptions(const Options& options)
|
|
||||||
: compaction_style(options.compaction_style),
|
|
||||||
compaction_options_universal(options.compaction_options_universal),
|
|
||||||
compaction_options_fifo(options.compaction_options_fifo),
|
|
||||||
prefix_extractor(options.prefix_extractor.get()),
|
|
||||||
comparator(options.comparator),
|
|
||||||
merge_operator(options.merge_operator.get()),
|
|
||||||
compaction_filter(options.compaction_filter),
|
|
||||||
compaction_filter_factory(options.compaction_filter_factory.get()),
|
|
||||||
inplace_update_support(options.inplace_update_support),
|
|
||||||
inplace_callback(options.inplace_callback),
|
|
||||||
info_log(options.info_log.get()),
|
|
||||||
statistics(options.statistics.get()),
|
|
||||||
env(options.env),
|
|
||||||
delayed_write_rate(options.delayed_write_rate),
|
|
||||||
allow_mmap_reads(options.allow_mmap_reads),
|
|
||||||
allow_mmap_writes(options.allow_mmap_writes),
|
|
||||||
db_paths(options.db_paths),
|
|
||||||
memtable_factory(options.memtable_factory.get()),
|
|
||||||
table_factory(options.table_factory.get()),
|
|
||||||
table_properties_collector_factories(
|
|
||||||
options.table_properties_collector_factories),
|
|
||||||
advise_random_on_open(options.advise_random_on_open),
|
|
||||||
bloom_locality(options.bloom_locality),
|
|
||||||
purge_redundant_kvs_while_flush(options.purge_redundant_kvs_while_flush),
|
|
||||||
disable_data_sync(options.disableDataSync),
|
|
||||||
use_fsync(options.use_fsync),
|
|
||||||
compression_per_level(options.compression_per_level),
|
|
||||||
bottommost_compression(options.bottommost_compression),
|
|
||||||
compression_opts(options.compression_opts),
|
|
||||||
level_compaction_dynamic_level_bytes(
|
|
||||||
options.level_compaction_dynamic_level_bytes),
|
|
||||||
access_hint_on_compaction_start(options.access_hint_on_compaction_start),
|
|
||||||
new_table_reader_for_compaction_inputs(
|
|
||||||
options.new_table_reader_for_compaction_inputs),
|
|
||||||
compaction_readahead_size(options.compaction_readahead_size),
|
|
||||||
num_levels(options.num_levels),
|
|
||||||
optimize_filters_for_hits(options.optimize_filters_for_hits),
|
|
||||||
listeners(options.listeners),
|
|
||||||
row_cache(options.row_cache) {}
|
|
||||||
|
|
||||||
ColumnFamilyOptions::ColumnFamilyOptions()
|
ColumnFamilyOptions::ColumnFamilyOptions()
|
||||||
: comparator(BytewiseComparator()),
|
: comparator(BytewiseComparator()),
|
||||||
merge_operator(nullptr),
|
merge_operator(nullptr),
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "rocksdb/table.h"
|
#include "rocksdb/table.h"
|
||||||
#include "util/mutable_cf_options.h"
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include "table/block.h"
|
#include "table/block.h"
|
||||||
#include "table/block_based_table_builder.h"
|
#include "table/block_based_table_builder.h"
|
||||||
#include "table/block_builder.h"
|
#include "table/block_builder.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/crc32c.h"
|
#include "util/crc32c.h"
|
||||||
#include "util/file_reader_writer.h"
|
#include "util/file_reader_writer.h"
|
||||||
#include "util/instrumented_mutex.h"
|
#include "util/instrumented_mutex.h"
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include "db/dbformat.h"
|
#include "db/dbformat.h"
|
||||||
#include "include/rocksdb/env.h"
|
#include "include/rocksdb/env.h"
|
||||||
#include "include/rocksdb/immutable_options.h"
|
|
||||||
#include "include/rocksdb/listener.h"
|
#include "include/rocksdb/listener.h"
|
||||||
#include "include/rocksdb/options.h"
|
#include "include/rocksdb/options.h"
|
||||||
#include "include/rocksdb/status.h"
|
#include "include/rocksdb/status.h"
|
||||||
#include "table/block_based_table_reader.h"
|
#include "table/block_based_table_reader.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/utilities/date_tiered_db.h"
|
#include "rocksdb/utilities/date_tiered_db.h"
|
||||||
|
#include "util/cf_options.h"
|
||||||
#include "util/instrumented_mutex.h"
|
#include "util/instrumented_mutex.h"
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
Loading…
Reference in New Issue
Block a user