1. 07 5月, 2015 2 次提交
    • J
      Merge pull request #601 from adamretter/jdb-bench · 37bbd318
      Jörg Maier 提交于
      Small fixes to Java benchmark
      37bbd318
    • Y
      Allow GetThreadList() to report basic compaction operation properties. · 77a5a543
      Yueh-Hsuan Chiang 提交于
      Summary:
      Now we're able to show more details about a compaction in
      GetThreadList() :)
      
      This patch allows GetThreadList() to report basic compaction
      operation properties.  Basic compaction properties include:
          1. job id
          2. compaction input / output level
          3. compaction property flags (is_manual, is_deletion, .. etc)
          4. total input bytes
          5. the number of bytes has been read currently.
          6. the number of bytes has been written currently.
      
      Flush operation properties will be done in a seperate diff.
      
      Test Plan:
      /db_bench --threads=30 --num=1000000 --benchmarks=fillrandom --thread_status_per_interval=1
      
      Sample output of tracking same job:
      
                ThreadID ThreadType       cfName            Operation   ElapsedTime                                         Stage        State OperationProperties
         140664171987072    Low Pri      default           Compaction     31.357 ms     CompactionJob::FinishCompactionOutputFile              BaseInputLevel 1 | BytesRead 2264663 | BytesWritten 1934241 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
      
                ThreadID ThreadType       cfName            Operation   ElapsedTime                                         Stage        State OperationProperties
         140664171987072    Low Pri      default           Compaction     59.440 ms     CompactionJob::FinishCompactionOutputFile              BaseInputLevel 1 | BytesRead 2264663 | BytesWritten 1934241 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
      
                ThreadID ThreadType       cfName            Operation   ElapsedTime                                         Stage        State OperationProperties
         140664171987072    Low Pri      default           Compaction    226.375 ms                        CompactionJob::Install              BaseInputLevel 1 | BytesRead 3958013 | BytesWritten 3621940 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
      
      Reviewers: sdong, rven, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D37653
      77a5a543
  2. 06 5月, 2015 5 次提交
    • I
      Cleanup CompactionJob · 65fe1cfb
      Igor Canadi 提交于
      Summary:
      Couple changes:
      1. instead of SnapshotList, just take a vector of snapshots
      2. don't take a separate parameter is_snapshots_supported. If there are snapshots in the list, that means they are supported. I actually think we should get rid of this notion of snapshots not being supported.
      3. don't pass in mutable_cf_options as a parameter. Lifetime of mutable_cf_options is a bit tricky to maintain, so it's better to not pass it in for the whole compaction job. We only really need it when we install the compaction results.
      
      Test Plan: make check
      
      Reviewers: sdong, rven, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D36627
      65fe1cfb
    • L
      fix crashes in stats and compaction filter for db_ttl_impl · df4130ad
      Laurent Demailly 提交于
      Summary: fix crashes in stats and compaction filter for db_ttl_impl
      
      Test Plan:
      Ran build with lots of debugging
      https://reviews.facebook.net/differential/diff/194175/
      
      Reviewers: yhchiang, igor, rven
      
      Reviewed By: igor
      
      Subscribers: rven, dhruba
      
      Differential Revision: https://reviews.facebook.net/D38001
      df4130ad
    • V
      Fix flakiness in column_family_test · 7ea76948
      Venkatesh Radhakrishnan 提交于
      Summary:
      Fixes #6840824, running "make check" on centos6 hits
      a deadlock in column_family_test
      
      Test Plan:
      seq 10000 | parallel --gnu --eta 't=/dev/shm/rdb-{}; rm -rf
      $t; mkdir $t && export TEST_TMPDIR=$t; ./column_family_test > $t/log-{}'
      Made the test deterministic by narrrowing the window for the flush.
      
      Reviewers: igor, meyering
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D38079
      7ea76948
    • I
      Don't treat warnings as error when building release · a2c4cc75
      Igor Canadi 提交于
      Summary: This will reduce errors reported by open source by 90%. Developers should have warnings break their compile. Users shouldn't.
      
      Test Plan:
      make dbg:
      g++  -g -W -Wextra -Wall -Wsign-compare -Wshadow -Wno-unused-parameter -Werror -I. -I./include -std=c++11  -DROCKSDB_PLATFORM_POSIX  -DOS_LINUX -fno-builtin-memcmp -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DGFLAGS=gflags -DZLIB -DBZIP2 -march=native   -isystem ./third-party/gtest-1.7.0/fused-src  -Woverloaded-virtual -Wn
      on-virtual-dtor -Wno-missing-field-initializers -c db/repair.cc -o db/repair.o
      
      make all:
      g++  -g -W -Wextra -Wall -Wsign-compare -Wshadow -Wno-unused-parameter -Werror -I. -I./include -std=c++11  -DROCKSDB_PLATFORM_POSIX  -DOS_LINUX -fno-builtin-memcmp -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DGFLAGS=gflags -DZLIB -DBZIP2 -march=native   -isystem ./third-party/gtest-1.7.0/fused-src -O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers -c db/repair.cc -o db/repair.o
      
      make static_lib:
      g++  -g -W -Wextra -Wall -Wsign-compare -Wshadow -Wno-unused-parameter -I. -I./include -std=c++11  -DROCKSDB_PLATFORM_POSIX  -DOS_LINUX -fno-builtin-memcmp -DROCKSDB_FALLOCATE_PRESENT -DSNAPPY -DGFLAGS=gflags -DZLIB -DBZIP2 -march=native   -isystem ./third-party/gtest-1.7.0/fused-src -O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer -DNDEBUG -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers -c db/repair.cc -o db/repair.o
      
      Reviewers: sdong, yhchiang, rven
      
      Reviewed By: rven
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D38031
      a2c4cc75
    • L
      Optimize GetRange Function · 9aa011fa
      Liangjun Feng 提交于
      Summary: Optimize GetRange Function by checking the level of the files
      
      Test Plan: pass make all check
      
      Reviewers: rven, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D37977
      9aa011fa
  3. 05 5月, 2015 2 次提交
  4. 03 5月, 2015 1 次提交
    • J
      build: avoid unused-variable warning · 2ab7065a
      Jim Meyering 提交于
      Summary:
      [noticed a new warning when building with the very latest gcc]
      * db/memtablerep_bench.cc (FLAGS_env): Remove declaration
      of unused varaible, to avoid this warning/error:
      
      db/memtablerep_bench.cc:135:22: error: ‘FLAGS_env’ defined but not\
        used [-Werror=unused-variable]
       static rocksdb::Env* FLAGS_env = rocksdb::Env::Default();
                            ^
      
      Test Plan: compile
      
      Reviewers: ljin, rven, igor.sugak, yhchiang, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D37983
      2ab7065a
  5. 02 5月, 2015 3 次提交
  6. 01 5月, 2015 5 次提交
  7. 30 4月, 2015 2 次提交
  8. 29 4月, 2015 1 次提交
  9. 28 4月, 2015 3 次提交
    • A
      Helper function to time Merges · d6f39c5a
      agiardullo 提交于
      Summary: Remove duplicate code.  If this diff looks good, I will cleanup other call sites as well.
      
      Test Plan: unit tests
      
      Reviewers: rven, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D37761
      d6f39c5a
    • M
      Add scripts to run leveldb benchmark · a087f80e
      Mark Callaghan 提交于
      Summary:
      This runs a benchmark for LevelDB similar to what we have
      in tools/run_flash_bench.sh. It requires changes to db_bench that I published
      in a LevelDB fork on github.  Some results are at:
      http://smalldatum.blogspot.com/2015/04/comparing-leveldb-and-rocksdb-take-2.html
      
      Sample output:
      ops/sec	mb/sec	usec/op	avg	p50	Test
      525	16.4	1904.5	1904.5	111.0	fillseq.v32768
      75187	15.5	13.3	13.3	4.4	fillseq.v200
      28328	5.8	35.3	35.3	4.7	overwrite.t1.s0
      175438	0.0	5.7	5.7	4.4	readrandom.t1
      28490	5.9	35.1	35.1	4.7	overwrite.t1.s0
      121951	0.0	8.2	8.2	5.7	readwhilewriting.t1
      
      Task ID: #
      
      Blame Rev:
      
      Test Plan:
      Revert Plan:
      
      Database Impact:
      
      Memcache Impact:
      
      Other Notes:
      
      EImportant:
      
      - begin *PUBLIC* platform impact section -
      Bugzilla: #
      - end platform impact -
      
      Reviewers: igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D37749
      a087f80e
    • I
      Include bunch of more events into EventLogger · 1bb4928d
      Igor Canadi 提交于
      Summary:
      Added these events:
      * Recovery start, finish and also when recovery creates a file
      * Trivial move
      * Compaction start, finish and when compaction creates a file
      * Flush start, finish
      
      Also includes small fix to EventLogger
      
      Also added option ROCKSDB_PRINT_EVENTS_TO_STDOUT which is useful when we debug things. I've spent far too much time chasing LOG files.
      
      Still didn't get sst table properties in JSON. They are written very deeply into the stack. I'll address in separate diff.
      
      TODO:
      * Write specification. Let's first use this for a while and figure out what's good data to put here, too. After that we'll write spec
      * Write tools that parse and analyze LOGs. This can be in python or go. Good intern task.
      
      Test Plan: Ran db_bench with ROCKSDB_PRINT_EVENTS_TO_STDOUT. Here's the output: https://phabricator.fb.com/P19811976
      
      Reviewers: sdong, yhchiang, rven, MarkCallaghan, kradhakrishnan, anthony
      
      Reviewed By: anthony
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D37521
      1bb4928d
  10. 27 4月, 2015 1 次提交
  11. 26 4月, 2015 2 次提交
  12. 25 4月, 2015 4 次提交
  13. 24 4月, 2015 9 次提交
    • S
      Build for CYGWIN · 98a44559
      sdong 提交于
      Summary:
      Make it build for CYGWIN.
      Need to define "-std=gnu++11" instead of "-std=c++11" and use some replacement functions.
      
      Test Plan: Build it and run some unit tests in CYGWIN
      
      Reviewers: yhchiang, rven, anthony, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D37605
      98a44559
    • S
      Fix CompactRange for universal compaction with num_levels > 1 · d01bbb53
      sdong 提交于
      Summary:
      CompactRange for universal compaction with num_levels > 1 seems to have a bug. The unit test also has a bug so it doesn't capture the problem.
      Fix it. Revert the compact range to the logic equivalent to num_levels=1. Always compact all files together.
      
      It should also fix DBTest.IncreaseUniversalCompactionNumLevels. The issue was that options.write_buffer_size = 100 << 10 and options.write_buffer_size = 100 << 10 are not used in later test scenarios. So write_buffer_size of 4MB was used. The compaction trigger condition is not anymore obvious as expected.
      
      Test Plan: Run the new test and all test suites
      
      Reviewers: yhchiang, rven, kradhakrishnan, anthony, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D37551
      d01bbb53
    • I
      Abstract out SetMaxPossibleForUserKey() and SetMinPossibleForUserKey · e003d386
      Igor Canadi 提交于
      Summary:
      Based on feedback from D37083.
      
      Are all of these correct? In some spaces it seems like we're doing SetMaxPossibleForUserKey() although we want the smallest possible internal key for user key.
      
      Test Plan: make check
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D37341
      e003d386
    • I
      Enable open source users to use jemalloc (github issue #438) · fd7a3573
      Igor Canadi 提交于
      Summary: Currently open source rocksdb only builds with tcmalloc. This diff first checks if jemalloc is available. If it is, it compiles with jemalloc. If it isn't, it checks for tcmalloc.
      
      Test Plan: Tried this out on my Ubuntu virtual machine and confirms that jemalloc is correctly detected and compiled.
      
      Reviewers: MarkCallaghan, yhchiang, rven, sdong
      
      Reviewed By: sdong
      
      Subscribers: adamretter, meyering, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D36789
      fd7a3573
    • I
      Add an assertion in CompactionPicker · aa14670b
      Igor Canadi 提交于
      Summary: Reading CompactionPicker I noticed this dangerous substraction of two unsigned integers. We should assert to mark this as safe.
      
      Test Plan: make check
      
      Reviewers: anthony, rven, yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: kradhakrishnan, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D37041
      aa14670b
    • G
      Implement DB::PromoteL0 method · 2dc421df
      Giuseppe Ottaviano 提交于
      Summary:
      This diff implements a new `DB` method `PromoteL0` which moves all files in L0
      to a given level skipping compaction, provided that the files have disjoint
      ranges and all levels up to the target level are empty.
      
      This method provides finer-grain control for trivial compactions, and it is
      useful for bulk-loading pre-sorted keys. Compared to D34797, it does not change
      the semantics of an existing operation, which can impact existing code.
      
      PromoteL0 is designed to work well in combination with the proposed
      `GetSstFileWriter`/`AddFile` interface, enabling to "design" the level structure
      by populating one level at a time. Such fine-grained control can be very useful
      for static or mostly-static databases.
      
      Test Plan: `make check`
      
      Reviewers: IslamAbdelRahman, philipp, MarkCallaghan, yhchiang, igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D37107
      2dc421df
    • S
      Print max score in level summary · 9bf40b64
      sdong 提交于
      Summary: Add more logging to help debugging issues.
      
      Test Plan: Run test suites
      
      Reviewers: yhchiang, rven, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D37401
      9bf40b64
    • S
      options.paranoid_file_checks to read all rows after writing to a file. · 397b6588
      sdong 提交于
      Summary: To further distinguish the corruption cases were caused by storage media or in memory states when writing it, add a paranoid check after writing the file to iterate all the rows.
      
      Test Plan: Add a new unit test for it
      
      Reviewers: rven, igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D37335
      397b6588
    • M
      Set --seed per test · 283a0429
      Mark Callaghan 提交于
      Summary:
      This is done to avoid having each thread use the same seed between runs
      of db_bench. Without this we can inflate the OS filesystem cache hit rate on
      reads for read heavy tests and generally see the same key sequences get generated
      between teste runs.
      
      Task ID: #
      
      Blame Rev:
      
      Test Plan:
      Revert Plan:
      
      Database Impact:
      
      Memcache Impact:
      
      Other Notes:
      
      EImportant:
      
      - begin *PUBLIC* platform impact section -
      Bugzilla: #
      - end platform impact -
      
      Reviewers: igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D37563
      283a0429