1. 14 3月, 2015 14 次提交
    • Y
      Fixed the unit-test issue in PreShutdownCompactionMiddle · 12134139
      Yueh-Hsuan Chiang 提交于
      Summary: Fixed the unit-test issue in PreShutdownCompactionMiddle
      
      Test Plan: export ROCKSDB_TESTS=PreShutdownCompactionMiddle
      
      Reviewers: rven, sdong, igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D35061
      12134139
    • Y
      Fix the issue in PreShutdownMultipleCompaction · fd1b3f38
      Yueh-Hsuan Chiang 提交于
      Summary: Fix the issue in PreShutdownMultipleCompaction
      
      Test Plan:
      export ROCKSDB_TESTS=PreShutdownMultipleCompaction
      ./db_test
      
      Reviewers: rven, sdong, igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D35055
      fd1b3f38
    • Y
      Fix compile warning in thread_status_util.h on Mac · 56c4a9c7
      Yueh-Hsuan Chiang 提交于
      Summary:
      Fix compile warning in thread_status_util.h on Mac
      
      Test Plan:
      make dbg -j32
      56c4a9c7
    • I
      Fix SIGSEGV when not using cache · 417367c4
      Igor Canadi 提交于
      417367c4
    • V
      Prevent slowdowns and stalls in PreShutdown tests · e25ff039
      Venkatesh Radhakrishnan 提交于
      Summary:
      The preshutdown tests check for stopped compactions/flushes.
      Removing stalls on the write path.
      
      Test Plan: DBTests.PreShutdown*
      
      Reviewers: yhchiang, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D35037
      e25ff039
    • I
      Speed up db_bench shutdown · f6907126
      Igor Canadi 提交于
      Summary: See t6489044
      
      Test Plan: compiles
      
      Reviewers: MarkCallaghan
      
      Reviewed By: MarkCallaghan
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34977
      f6907126
    • Y
      Improve the robustness of ThreadStatusSingleCompaction · c1b3cde1
      Yueh-Hsuan Chiang 提交于
      Summary:
      Improve the robustness of ThreadStatusSingleCompaction
      by ensuring the number of files flushed in the test.
      
      Test Plan:
      export ROCKSDB_TESTS=ThreadStatus
      ./db_test
      
      Reviewers: sdong, igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D35019
      c1b3cde1
    • Y
      Fix the deadlock issue in ThreadStatusSingleCompaction. · 8c12426c
      Yueh-Hsuan Chiang 提交于
      Summary:
      Fix the deadlock issue in ThreadStatusSingleCompaction.
      
      In the previous version of ThreadStatusSingleCompaction, the compaction
      thread will wait for a SYNC_POINT while its db_mutex is held.  However,
      if the test hasn't finished its Put cycle while a compaction is running,
      a deadlock will happen in the test.
      
      Test Plan:
      export ROCKSDB_TESTS=ThreadStatus
      ./db_test
      
      Reviewers: sdong, igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D35001
      8c12426c
    • S
      DBTest.DynamicLevelCompressionPerLevel should not run without snappy support · b16ead53
      sdong 提交于
      Summary: The test depends on snappy to be used. Skip the test if it is not supported.
      
      Test Plan: Run the test
      
      Reviewers: meyering, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D34995
      b16ead53
    • Y
      Fix a typo / test failure in ThreadStatusSingleCompaction · a5e60baf
      Yueh-Hsuan Chiang 提交于
      Summary:
      Fix a typo / test failure in ThreadStatusSingleCompaction
      
      Test Plan:
      export ROCKSDB_TESTS=ThreadStatus
      ./db_test
      a5e60baf
    • I
      Don't run some tests is snappy is not present · cb2c9185
      Igor Canadi 提交于
      Summary: Currently, we have `ifdef SNAPPY` around bunch of db_test code. Some tests that don't even use compression are also blocked when running system doesn't have snappy. This also causes hard-to-catch bugs, like D34983. We should dynamically figure out if compression is supported or not.
      
      Test Plan: compiles
      
      Reviewers: sdong, meyering
      
      Reviewed By: meyering
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34989
      cb2c9185
    • Y
      Allow GetThreadList() to report operation stage. · c594b0e8
      Yueh-Hsuan Chiang 提交于
      Summary: Allow GetThreadList() to report operation stage.
      
      Test Plan:
        ./thread_list_test
        ./db_bench --benchmarks=fillrandom --num=100000 --threads=40 \
          --max_background_compactions=10 --max_background_flushes=3 \
          --thread_status_per_interval=1000 --key_size=16 --value_size=1000 \
          --num_column_families=10
      
        export ROCKSDB_TESTS=ThreadStatus
        ./db_test
      
      Sample output
                ThreadID ThreadType                    cfName    Operation        OP_StartTime    ElapsedTime                                         Stage        State
         140116265861184    Low Pri
         140116270055488    Low Pri
         140116274249792   High Pri column_family_name_000005        Flush 2015/03/10-14:58:11           0 us                    FlushJob::WriteLevel0Table
         140116400078912    Low Pri column_family_name_000004   Compaction 2015/03/10-14:58:11           0 us     CompactionJob::FinishCompactionOutputFile
         140116358135872    Low Pri column_family_name_000006   Compaction 2015/03/10-14:58:10           1 us     CompactionJob::FinishCompactionOutputFile
         140116341358656    Low Pri
         140116295221312   High Pri                   default        Flush 2015/03/10-14:58:11           0 us                    FlushJob::WriteLevel0Table
         140116324581440    Low Pri column_family_name_000009   Compaction 2015/03/10-14:58:11           0 us      CompactionJob::ProcessKeyValueCompaction
         140116278444096    Low Pri
         140116299415616    Low Pri column_family_name_000008   Compaction 2015/03/10-14:58:11           0 us     CompactionJob::FinishCompactionOutputFile
         140116291027008   High Pri column_family_name_000001        Flush 2015/03/10-14:58:11           0 us                    FlushJob::WriteLevel0Table
         140116286832704    Low Pri column_family_name_000002   Compaction 2015/03/10-14:58:11           0 us     CompactionJob::FinishCompactionOutputFile
         140116282638400    Low Pri
      
      Reviewers: rven, igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34683
      c594b0e8
    • I
      Include chrono · 2623b2cf
      Igor Canadi 提交于
      2623b2cf
    • I
      EventLogger · 52d8347a
      Igor Canadi 提交于
      Summary:
      Here's my proposal for making our LOGs easier to read by machines.
      
      The idea is to dump all events as JSON objects. JSON is easy to read by humans, but more importantly, it's easy to read by machines. That way, we can parse this, load into SQLite/mongo and then query or visualize.
      
      I started with table_create and table_delete events, but if everybody agrees, I'll continue by adding more events (flush/compaction/etc etc)
      
      Test Plan:
      Ran db_bench. Observed:
      2015/01/15-14:13:25.788019 1105ef000 EVENT_LOG_v1 {"time_micros": 1421360005788015, "event": "table_file_creation", "file_number": 12, "file_size": 1909699}
      2015/01/15-14:13:25.956500 110740000 EVENT_LOG_v1 {"time_micros": 1421360005956498, "event": "table_file_deletion", "file_number": 12}
      
      Reviewers: yhchiang, rven, dhruba, MarkCallaghan, lgalanis, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D31647
      52d8347a
  2. 13 3月, 2015 9 次提交
  3. 12 3月, 2015 7 次提交
    • I
      Fixing segmentation fault in db_bench · 1d43bc41
      Islam AbdelRahman 提交于
      Summary:
      Fixing segmentation fault when running db_bench
      
      This seg fault happens because num_created is used without being initialized
      
      Test Plan:
      running db_bench using these arguments
      bpl=10485760;overlap=10;mcz=2;del=300000000;levels=6;ctrig=4; delay=8; stop=12; wbn=3; mbc=20; mb=67108864;wbs=134217728; dds=0; sync=0; r=1000000; t=1; vs=800; bs=65536; cs=1048576; of=500000; si=1000000; ./db_bench --benchmarks=overwrite --disable_seek_compaction=1 --mmap_read=0 --statistics=1 --histogram=1 --num=$r --threads=$t --value_size=$vs --block_size=$bs --cache_size=$cs --bloom_bits=10 --cache_numshardbits=4 --open_files=$of --verify_checksum=1 --db=/home/tec/koko/ --sync=$sync --disable_wal=1 --compression_type=zlib --stats_interval=$si --compression_ratio=0.5 --disable_data_sync=$dds --write_buffer_size=$wbs --target_file_size_base=$mb --max_write_buffer_number=$wbn --max_background_compactions=$mbc --level0_file_num_compaction_trigger=$ctrig --level0_slowdown_writes_trigger=$delay --level0_stop_writes_trigger=$stop --num_levels=$levels --delete_obsolete_files_period_micros=$del --min_level_to_compress=$mcz --max_grandparent_overlap_factor=$overlap --stats_per_interval=1 --max_bytes_for_level_base=$bpl --use_existing_db=1
      
      Reviewers: sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34881
      1d43bc41
    • S
      Change the way options.compression_per_level is used when... · e9de8b65
      sdong 提交于
      Change the way options.compression_per_level is used when options.level_compaction_dynamic_level_bytes=true
      
      Summary:
      Change the way options.compression_per_level is used when options.level_compaction_dynamic_level_bytes=true so that options.compression_per_level[1] determines compression for the level L0 is merged to, options.compression_per_level[2] to the level after that, etc.
      
      Test Plan: run all tests
      
      Reviewers: rven, yhchiang, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: yoshinorim, leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D34431
      e9de8b65
    • Y
      Fixed a bug where CompactFiles won't delete obsolete files until flush. · 2b785d76
      Yueh-Hsuan Chiang 提交于
      Summary: Fixed a bug where CompactFiles won't delete obsolete files until flush.
      
      Test Plan:
      ./compact_files_test
      export ROCKSDB_TESTS=CompactFiles
      ./db_test
      
      Reviewers: rven, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34671
      2b785d76
    • Y
      Fixed a compile error in db_bench in mac. · 6f557986
      Yueh-Hsuan Chiang 提交于
      Summary:
      Fixed a compile error in db_bench in mac.
      
      Test Plan:
      make db_bench
      6f557986
    • V
      Add convenience.cc to src.mk · 05d92efa
      Venkatesh Radhakrishnan 提交于
      Summary:
      The build process now requires new source files to be added to
      src.mk. Adding convenience.cc to src.mk
      
      Test Plan: Build rocksdb
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34815
      05d92efa
    • S
      db_bench: Better way to randomize repeated read keys in -read_random_exp_range · 2884b100
      sdong 提交于
      Summary: Use a better way to map from a key with locality to a random location. Now with the same -read_random_exp_range setting, hit rate drops, which it is expected.
      
      Test Plan: ./db_bench --benchmarks=readrandom -statistics -use_existing_db -cache_size=5000000 --read_random_exp_range=<multiple_values>
      
      Reviewers: MarkCallaghan, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D34761
      2884b100
    • V
      Provide a mechanism to inform Rocksdb that it is shutting down · 284be570
      Venkatesh Radhakrishnan 提交于
      Summary:
      Provide an API which enables users to infor Rocksdb that it is
      shutting down.
      
      Test Plan: db_test
      
      Reviewers: sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34617
      284be570
  4. 11 3月, 2015 3 次提交
    • I
      Get OptimizeFilterForHits work on Mac · 2ddf53b2
      Igor Canadi 提交于
      Summary: Got it working by some voodoo programming
      
      Test Plan: works!
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34611
      2ddf53b2
    • V
      Fix make_new_version.sh · 480b2847
      Venkatesh Radhakrishnan 提交于
      Summary:
      One of the commands in the script make_new_version.sh was
      incorrect. Fixed it.
      
      Test Plan: Try the script out to verify that it works.
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34791
      480b2847
    • Y
      Allow GetThreadList() to report the start time of the current operation. · 89597bb6
      Yueh-Hsuan Chiang 提交于
      Summary: Allow GetThreadList() to report the start time of the current operation.
      
      Test Plan:
      ./db_bench --benchmarks=fillrandom --num=100000 --threads=40 \
        --max_background_compactions=10 --max_background_flushes=3 \
        --thread_status_per_interval=1000 --key_size=16 --value_size=1000 \
        --num_column_families=10
      
      Sample output:
                ThreadID ThreadType                    cfName    Operation        OP_StartTime         State
         140338840797248   High Pri column_family_name_000003        Flush 2015/03/09-17:49:59
         140338844991552   High Pri column_family_name_000004        Flush 2015/03/09-17:49:59
         140338849185856    Low Pri
         140338983403584    Low Pri
         140339008569408    Low Pri
         140338861768768    Low Pri
         140338924683328    Low Pri
         140338899517504    Low Pri
         140338853380160    Low Pri
         140338882740288    Low Pri
         140338865963072   High Pri column_family_name_000006        Flush 2015/03/09-17:49:59
         140338954043456    Low Pri
         140338857574464    Low Pri
      
      Reviewers: igor, rven, sdong
      
      Reviewed By: sdong
      
      Subscribers: lgalanis, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34689
      89597bb6
  5. 10 3月, 2015 1 次提交
    • S
      db_bench: Add Option -read_random_exp_range to allow read skewness. · 37921b49
      sdong 提交于
      Summary: Introduce parameter -read_random_exp_range in db_bench to provide some key skewness in readrandom and multireadrandom benchmarks. It will helpful to cover block cache better.
      
      Test Plan:
      Run benchmarks with this new parameter. I can clearly see block cache hit rate change while I increase this value (DB size is about 66MB):
      
      ./db_bench --benchmarks=readrandom -statistics -use_existing_db -cache_size=5000000 --read_random_exp_range=0.0
      rocksdb.block.cache.data.miss COUNT : 958418
      rocksdb.block.cache.data.hit COUNT : 41582
      
      ./db_bench --benchmarks=readrandom -statistics -use_existing_db -cache_size=5000000 --read_random_exp_range=5.0
      rocksdb.block.cache.data.miss COUNT : 819518
      rocksdb.block.cache.data.hit COUNT : 180482
      
      ./db_bench --benchmarks=readrandom -statistics -use_existing_db -cache_size=5000000 --read_random_exp_range=10.0
      rocksdb.block.cache.data.miss COUNT : 450479
      rocksdb.block.cache.data.hit COUNT : 549521
      
      ./db_bench --benchmarks=readrandom -statistics -use_existing_db -cache_size=5000000 --read_random_exp_range=20.0
      rocksdb.block.cache.data.miss COUNT : 223192
      rocksdb.block.cache.data.hit COUNT : 776808
      
      Reviewers: MarkCallaghan, kradhakrishnan, yhchiang, rven, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D34629
      37921b49
  6. 07 3月, 2015 6 次提交
    • I
      Add rate_limiter to string options · 485ac0db
      Igor Canadi 提交于
      Summary: I want to be able to set this through mongo config.
      
      Test Plan: added unit test
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D34599
      485ac0db
    • L
      Single threaded tests -> sync=0 Multi threaded tests -> sync=1 by default... · e126e0da
      Leonidas Galanis 提交于
      Single threaded tests -> sync=0 Multi threaded tests -> sync=1 by default unless DB_BENCH_NO_SYNC is defined
      
      Summary:
      Single threaded tests -> sync=0 Multi threaded tests -> sync=1 by default unless DB_BENCH_NO_SYNC is defined.
      
      Also added updaterandom and mergerandom with putOperator. I am waiting for some results from udb on this.
      
      Test Plan:
      DB_BENCH_NO_SYNC=1 WAL_DIR=/tmp OUTPUT_DIR=/tmp/b DB_DIR=/tmp ./tools/benchmark.sh debug,bulkload,fillseq,overwrite,filluniquerandom,readrandom,readwhilewriting,updaterandom,mergerandom
      
      WAL_DIR=/tmp OUTPUT_DIR=/tmp/b DB_DIR=/tmp ./tools/benchmark.sh debug,bulkload,fillseq,overwrite,filluniquerandom,readrandom,readwhilewriting,updaterandom,mergerandom
      
      Verify sync settings
      
      Reviewers: sdong, MarkCallaghan, igor, rven
      
      Reviewed By: igor, rven
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34185
      e126e0da
    • Y
      Add --thread_status_per_interval to db_bench · dc4532c4
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add --thread_status_per_interval to db_bench, which allows
      db_bench to optionally enable print the current thread status
      periodically.
      
      Test Plan:
      ./db_bench --benchmarks=fillrandom --num=100000 --threads=40 --max_background_compactions=10 --max_background_flushes=3 --thread_status_per_interval=1000 --key_size=16 --value_size=1000 --num_column_families=10
      
      Sample output:
                ThreadID ThreadType                         dbName                     cfName       Operation           State
         140281571770432    Low Pri
         140281575964736   High Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000001           Flush
         140281710182464    Low Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000008      Compaction
         140281638879296    Low Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000007      Compaction
         140281592741952    Low Pri
         140281580159040   High Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000002           Flush
         140281676628032    Low Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000006      Compaction
         140281584353344    Low Pri
         140281622102080    Low Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000009      Compaction
         140281605324864    Low Pri  /tmp/rocksdbtest-5297/dbbench  column_family_name_000004      Compaction
         140281601130560   High Pri  /tmp/rocksdbtest-5297/dbbench                    default           Flush
         140281596936256    Low Pri
         140281588547648    Low Pri
      
      Reviewers: igor, rven, sdong
      
      Reviewed By: rven
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34515
      dc4532c4
    • J
      fix-up patch: avoid new link error · 34c75e98
      Jim Meyering 提交于
      Summary:
      * src.mk (LIB_SOURCES): Add this file:
      utilities/document/json_document_builder.cc
      to avoid link errors.
      
      Blame Rev: D33849
      
      Test Plan: run "make"
      
      Reviewers: ljin, igor.sugak, rven, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34593
      34c75e98
    • J
      build: fix missing dependency problems · ebc647de
      Jim Meyering 提交于
      Summary:
      Any time one would modify a dependent of any *test*.cc file,
      "make" would fail to rebuild the affected test binaries,
      e.g., db_test.  That was due to the fact that we deliberately
      excluded those test-related files from the definition of SOURCES
      and only $(SOURCES) was used to create the automatically-generated
      .d dependency files.  The fix is to generate a .d file for every
      source file.
      * src.mk: New file.  Defines LIB_SOURCES, MOCK_SOURCES
      and TEST_BENCH_SOURCES.
      * Makefile: Include src.mk.
      Reflect s/SOURCES/LIB_SOURCES/ renaming.
      * build_tools/build_detect_platform: Remove the code
      that was used to generate SOURCES= and MOCK_SOURCES=
      definitions in make_config.mk. Those lists of files
      are now hard-coded in src.mk. Hard-coding this list of
      sources is desirable, because without that, one risks
      including stray .cc files in a build.  Not reproducible.
      
      Test Plan:
      Touch a file used by db_test's dependent .o files and ensure that
      they are all recompiled.  Before, none would be:
      
        $ touch db/db_impl.h && make db_test
          CC       db/db_test.o
          CC       db/column_family.o
          CC       db/db_filesnapshot.o
          CC       db/db_impl.o
          CC       db/db_impl_debug.o
          CC       db/db_impl_readonly.o
          CC       db/forward_iterator.o
          CC       db/internal_stats.o
          CC       db/managed_iterator.o
          CC       db/repair.o
          CC       db/write_batch.o
          CC       utilities/compacted_db/compacted_db_impl.o
          CC       utilities/ttl/db_ttl_impl.o
          CC       util/ldb_cmd.o
          CC       util/ldb_tool.o
          CC       util/sst_dump_tool.o
          CC       util/xfunc.o
          CCLD     db_test
      
      Reviewers: ljin, igor.sugak, igor, rven, sdong
      
      Reviewed By: sdong
      
      Subscribers: yhchiang, adamretter, fyrz, dhruba
      
      Differential Revision: https://reviews.facebook.net/D33849
      ebc647de
    • T
      Fix a segfault in fbson under Mac OS X compiler · 492f6d27
      Tian Xia 提交于
      Summary:
      The problem appears to be caused by a bug in Mac OS X compiler
      (http://llvm.org/bugs/show_bug.cgi?id=15337). We need explicitly construct the
      base object std::ostream(std::streambuf*) with nullptr. Otherwise, ostream will
      try to delete the underlying streambuf* which apparently is undefined in the
      Mac OS X compiler.
      
      https://github.com/facebook/rocksdb/issues/525
      
      Test Plan:
      unit test in fbson
      make all check
      document_db_test (on mac)
      
      Reviewers: IslamAbdelRahman, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34587
      492f6d27