From deb1a1fa9b93dbcc3d2fbde84b2391b3d1f7c024 Mon Sep 17 00:00:00 2001 From: heyongqiang Date: Sun, 19 Aug 2012 16:05:02 -0700 Subject: [PATCH] add disable wal to db_bench Summary: as subject. ./db_bench --benchmarks=fillrandom --num=1000000 --disable_data_sync=1 --write_buffer_size=50000000 --target_file_size_base=100000000 --disable_wal=1 LevelDB: version 1.4 Date: Sun Aug 19 16:01:59 2012 CPU: 8 * Intel(R) Xeon(R) CPU L5630 @ 2.13GHz CPUCache: 12288 KB Keys: 16 bytes each Values: 100 bytes each (50 bytes after compression) Entries: 1000000 RawSize: 110.6 MB (estimated) FileSize: 62.9 MB (estimated) ------------------------------------------------ fillrandom : 4.591 micros/op 217797 ops/sec; 24.1 MB/s ./db_bench --benchmarks=fillrandom --num=1000000 --disable_data_sync=1 --write_buffer_size=50000000 --target_file_size_base=100000000 LevelDB: version 1.4 Date: Sun Aug 19 16:02:54 2012 CPU: 8 * Intel(R) Xeon(R) CPU L5630 @ 2.13GHz CPUCache: 12288 KB Keys: 16 bytes each Values: 100 bytes each (50 bytes after compression) Entries: 1000000 RawSize: 110.6 MB (estimated) FileSize: 62.9 MB (estimated) ------------------------------------------------ fillrandom : 3.696 micros/op 270530 ops/sec; 29.9 MB/s Test Plan: db_bench Reviewers: dhruba Differential Revision: https://reviews.facebook.net/D4767 --- db/db_bench.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/db/db_bench.cc b/db/db_bench.cc index 7ec2ed839..08f8ba61f 100644 --- a/db/db_bench.cc +++ b/db/db_bench.cc @@ -128,6 +128,9 @@ static bool FLAGS_sync = false; // If true, do not wait until data is synced to disk. static bool FLAGS_disable_data_sync = false; +// If true, do not write WAL for write. +static bool FLAGS_disable_wal = false; + // Target level-0 file size for compaction static int FLAGS_target_file_size_base = 2 * 1048576; @@ -140,6 +143,12 @@ static int FLAGS_max_bytes_for_level_base = 10 * 1048576; // A multiplier to compute max bytes for level-N static int FLAGS_max_bytes_for_level_multiplier = 10; +// Number of files in level-0 that will trigger put stop. +static int FLAGS_level0_stop_writes_trigger = 12; + +// Nulber of files in level-0 that will slow down writes. +static int FLAGS_level0_slowdown_writes_trigger = 4; + // posix or hdfs environment static leveldb::Env* FLAGS_env = leveldb::Env::Default(); @@ -502,6 +511,8 @@ class Benchmark { write_options_.sync = true; } + write_options_.disableWAL = FLAGS_disable_wal; + void (Benchmark::*method)(ThreadState*) = NULL; bool fresh_db = false; int num_threads = FLAGS_threads; @@ -768,6 +779,9 @@ class Benchmark { options.max_bytes_for_level_base = FLAGS_max_bytes_for_level_base; options.max_bytes_for_level_multiplier = FLAGS_max_bytes_for_level_multiplier; + options.level0_stop_writes_trigger = FLAGS_level0_stop_writes_trigger; + options.level0_slowdown_writes_trigger = + FLAGS_level0_slowdown_writes_trigger; Status s = DB::Open(options, FLAGS_db, &db_); if (!s.ok()) { fprintf(stderr, "open error: %s\n", s.ToString().c_str()); @@ -1056,6 +1070,9 @@ int main(int argc, char** argv) { } else if (sscanf(argv[i], "--disable_data_sync=%d%c", &n, &junk) == 1 && (n == 0 || n == 1)) { FLAGS_disable_data_sync = n; + } else if (sscanf(argv[i], "--disable_wal=%d%c", &n, &junk) == 1 && + (n == 0 || n == 1)) { + FLAGS_disable_wal = n; } else if (sscanf(argv[i], "--hdfs=%s", &hdfsname) == 1) { FLAGS_env = new leveldb::HdfsEnv(hdfsname); } else if (sscanf(argv[i], "--target_file_size_base=%d%c", @@ -1070,6 +1087,12 @@ int main(int argc, char** argv) { } else if (sscanf(argv[i], "--max_bytes_for_level_multiplier=%d%c", &n, &junk) == 1) { FLAGS_max_bytes_for_level_multiplier = n; + } else if (sscanf(argv[i],"--level0_stop_writes_trigger=%d%c", + &n, &junk) == 1) { + FLAGS_level0_stop_writes_trigger = n; + } else if (sscanf(argv[i],"--level0_slowdown_writes_trigger=%d%c", + &n, &junk) == 1) { + FLAGS_level0_slowdown_writes_trigger = n; } else { fprintf(stderr, "Invalid flag '%s'\n", argv[i]); exit(1);