2011-03-18 22:37:00 +00:00
|
|
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
|
|
|
2011-03-30 18:35:40 +00:00
|
|
|
#include "leveldb/options.h"
|
2011-03-18 22:37:00 +00:00
|
|
|
|
2011-03-30 18:35:40 +00:00
|
|
|
#include "leveldb/comparator.h"
|
|
|
|
#include "leveldb/env.h"
|
2012-08-22 18:43:53 +00:00
|
|
|
#include "leveldb/filter_policy.h"
|
2012-09-30 01:02:02 +00:00
|
|
|
#include "leveldb/cache.h"
|
2011-03-18 22:37:00 +00:00
|
|
|
|
|
|
|
namespace leveldb {
|
|
|
|
|
|
|
|
Options::Options()
|
|
|
|
: comparator(BytewiseComparator()),
|
|
|
|
create_if_missing(false),
|
|
|
|
error_if_exists(false),
|
|
|
|
paranoid_checks(false),
|
|
|
|
env(Env::Default()),
|
|
|
|
info_log(NULL),
|
2011-04-12 19:38:58 +00:00
|
|
|
write_buffer_size(4<<20),
|
2012-10-19 21:00:53 +00:00
|
|
|
max_write_buffer_number(2),
|
2011-03-18 22:37:00 +00:00
|
|
|
max_open_files(1000),
|
|
|
|
block_cache(NULL),
|
2011-04-12 19:38:58 +00:00
|
|
|
block_size(4096),
|
2011-03-18 22:37:00 +00:00
|
|
|
block_restart_interval(16),
|
2012-04-17 15:36:46 +00:00
|
|
|
compression(kSnappyCompression),
|
2012-10-28 06:13:17 +00:00
|
|
|
compression_per_level(NULL),
|
2012-08-29 19:29:43 +00:00
|
|
|
filter_policy(NULL),
|
2012-06-23 02:30:03 +00:00
|
|
|
num_levels(7),
|
|
|
|
level0_file_num_compaction_trigger(4),
|
|
|
|
level0_slowdown_writes_trigger(8),
|
|
|
|
level0_stop_writes_trigger(12),
|
|
|
|
max_mem_compaction_level(2),
|
|
|
|
target_file_size_base(2 * 1048576),
|
2012-08-22 00:33:46 +00:00
|
|
|
target_file_size_multiplier(1),
|
2012-07-03 00:30:32 +00:00
|
|
|
max_bytes_for_level_base(10 * 1048576),
|
2012-06-23 02:30:03 +00:00
|
|
|
max_bytes_for_level_multiplier(10),
|
|
|
|
expanded_compaction_factor(25),
|
2012-11-21 07:07:41 +00:00
|
|
|
source_compaction_factor(1),
|
2012-06-23 02:30:03 +00:00
|
|
|
max_grandparent_overlap_factor(10),
|
2012-08-03 22:20:58 +00:00
|
|
|
statistics(NULL),
|
2012-08-14 22:20:36 +00:00
|
|
|
disableDataSync(false),
|
2012-08-27 19:10:26 +00:00
|
|
|
use_fsync(false),
|
2012-09-06 00:44:13 +00:00
|
|
|
db_stats_log_interval(1800),
|
2012-09-17 20:35:57 +00:00
|
|
|
db_log_dir(""),
|
2012-10-16 15:53:46 +00:00
|
|
|
disable_seek_compaction(false),
|
2012-10-26 20:37:21 +00:00
|
|
|
delete_obsolete_files_period_micros(0),
|
2012-11-06 00:51:55 +00:00
|
|
|
max_background_compactions(1),
|
2012-10-29 21:18:00 +00:00
|
|
|
max_log_file_size(0),
|
2012-11-12 06:33:22 +00:00
|
|
|
rate_limit(0.0),
|
2012-11-06 20:02:18 +00:00
|
|
|
no_block_cache(false),
|
|
|
|
table_cache_numshardbits(4),
|
2012-11-13 23:48:00 +00:00
|
|
|
compaction_filter_args(NULL),
|
2012-11-20 23:45:41 +00:00
|
|
|
CompactionFilter(NULL),
|
|
|
|
disable_auto_compactions(false) {
|
2011-03-18 22:37:00 +00:00
|
|
|
}
|
|
|
|
|
2012-08-22 18:43:53 +00:00
|
|
|
void
|
|
|
|
Options::Dump(
|
|
|
|
Logger * log) const
|
|
|
|
{
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.comparator: %s", comparator->Name());
|
|
|
|
Log(log," Options.create_if_missing: %d", create_if_missing);
|
|
|
|
Log(log," Options.error_if_exists: %d", error_if_exists);
|
|
|
|
Log(log," Options.paranoid_checks: %d", paranoid_checks);
|
|
|
|
Log(log," Options.env: %p", env);
|
|
|
|
Log(log," Options.info_log: %p", info_log);
|
|
|
|
Log(log," Options.write_buffer_size: %zd", write_buffer_size);
|
2012-11-07 23:11:37 +00:00
|
|
|
Log(log," Options.max_write_buffer_number: %d", max_write_buffer_number);
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.max_open_files: %d", max_open_files);
|
|
|
|
Log(log," Options.block_cache: %p", block_cache);
|
2012-11-01 00:02:24 +00:00
|
|
|
if (block_cache) {
|
|
|
|
Log(log," Options.block_cache_size: %zd",
|
|
|
|
block_cache->GetCapacity());
|
|
|
|
}
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.block_size: %zd", block_size);
|
|
|
|
Log(log," Options.block_restart_interval: %d", block_restart_interval);
|
2012-10-28 06:13:17 +00:00
|
|
|
if (compression_per_level != NULL) {
|
2012-11-06 20:02:18 +00:00
|
|
|
for (int i = 0; i < num_levels; i++){
|
2012-11-01 17:50:08 +00:00
|
|
|
Log(log," Options.compression[%d]: %d",
|
2012-10-28 06:13:17 +00:00
|
|
|
i, compression_per_level[i]);
|
|
|
|
}
|
|
|
|
} else {
|
2012-10-29 21:18:00 +00:00
|
|
|
Log(log," Options.compression: %d", compression);
|
2012-10-28 06:13:17 +00:00
|
|
|
}
|
2012-08-27 19:10:26 +00:00
|
|
|
Log(log," Options.filter_policy: %s",
|
|
|
|
filter_policy == NULL ? "NULL" : filter_policy->Name());
|
|
|
|
Log(log," Options.num_levels: %d", num_levels);
|
|
|
|
Log(log," Options.disableDataSync: %d", disableDataSync);
|
|
|
|
Log(log," Options.use_fsync: %d", use_fsync);
|
2012-11-06 20:02:18 +00:00
|
|
|
Log(log," Options.max_log_file_size: %ld", max_log_file_size);
|
2012-10-26 21:55:02 +00:00
|
|
|
Log(log," Options.db_stats_log_interval: %d",
|
2012-08-27 19:10:26 +00:00
|
|
|
db_stats_log_interval);
|
2012-11-01 17:50:08 +00:00
|
|
|
Log(log," Options.compression_opts.window_bits: %d",
|
|
|
|
compression_opts.window_bits);
|
|
|
|
Log(log," Options.compression_opts.level: %d",
|
|
|
|
compression_opts.level);
|
|
|
|
Log(log," Options.compression_opts.strategy: %d",
|
|
|
|
compression_opts.strategy);
|
2012-08-27 19:10:26 +00:00
|
|
|
Log(log," Options.level0_file_num_compaction_trigger: %d",
|
|
|
|
level0_file_num_compaction_trigger);
|
|
|
|
Log(log," Options.level0_slowdown_writes_trigger: %d",
|
|
|
|
level0_slowdown_writes_trigger);
|
|
|
|
Log(log," Options.level0_stop_writes_trigger: %d",
|
|
|
|
level0_stop_writes_trigger);
|
|
|
|
Log(log," Options.max_mem_compaction_level: %d",
|
|
|
|
max_mem_compaction_level);
|
|
|
|
Log(log," Options.target_file_size_base: %d",
|
|
|
|
target_file_size_base);
|
|
|
|
Log(log," Options.target_file_size_multiplier: %d",
|
|
|
|
target_file_size_multiplier);
|
2012-11-09 02:45:19 +00:00
|
|
|
Log(log," Options.max_bytes_for_level_base: %ld",
|
2012-08-27 19:10:26 +00:00
|
|
|
max_bytes_for_level_base);
|
|
|
|
Log(log," Options.max_bytes_for_level_multiplier: %d",
|
|
|
|
max_bytes_for_level_multiplier);
|
|
|
|
Log(log," Options.expanded_compaction_factor: %d",
|
|
|
|
expanded_compaction_factor);
|
2012-11-21 07:07:41 +00:00
|
|
|
Log(log," Options.source_compaction_factor: %d",
|
|
|
|
source_compaction_factor);
|
2012-08-27 19:10:26 +00:00
|
|
|
Log(log," Options.max_grandparent_overlap_factor: %d",
|
|
|
|
max_grandparent_overlap_factor);
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.db_log_dir: %s",
|
2012-09-06 00:44:13 +00:00
|
|
|
db_log_dir.c_str());
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.disable_seek_compaction: %d",
|
2012-09-17 20:35:57 +00:00
|
|
|
disable_seek_compaction);
|
2012-11-01 00:02:24 +00:00
|
|
|
Log(log," Options.no_block_cache: %d",
|
|
|
|
no_block_cache);
|
|
|
|
Log(log," Options.table_cache_numshardbits: %d",
|
|
|
|
table_cache_numshardbits);
|
2012-10-19 19:16:18 +00:00
|
|
|
Log(log," Options.delete_obsolete_files_period_micros: %ld",
|
|
|
|
delete_obsolete_files_period_micros);
|
2012-10-19 21:00:53 +00:00
|
|
|
Log(log," Options.max_background_compactions: %d",
|
|
|
|
max_background_compactions);
|
2012-10-26 20:37:21 +00:00
|
|
|
Log(log," Options.rate_limit: %.2f",
|
|
|
|
rate_limit);
|
2012-11-13 23:48:00 +00:00
|
|
|
Log(log," Options.compaction_filter_args: %p",
|
|
|
|
compaction_filter_args);
|
2012-10-29 08:13:41 +00:00
|
|
|
Log(log," Options.CompactionFilter: %p",
|
|
|
|
CompactionFilter);
|
2012-11-20 23:45:41 +00:00
|
|
|
Log(log," Options.disable_auto_compactions: %d",
|
|
|
|
disable_auto_compactions);
|
2012-08-22 18:43:53 +00:00
|
|
|
} // Options::Dump
|
|
|
|
|
2011-10-31 17:22:06 +00:00
|
|
|
} // namespace leveldb
|