1. 15 3月, 2015 3 次提交
    • F
      RocksJava - JNI Logger callback · 57f2a00c
      fyrz 提交于
      Summary:
      Within this commit a new AbstractLogger was introduced
      which allows to handle log messages at an application level.
      
      Log messages are passed up to Java using a JNI callback.
      
      This allows a Java-Developer to use common Java APIs for log
      messages e.g. SLF4J, LOG4J, etc. Within this commit no new
      dependencies were introduced, which keeps the RocksDB API clean
      and doesn`t force a developer to use a predefined high-level Java API.
      
      Another feature is to dynamically set a custom loggers verbosity at
      runtime using its public method `setInfoLogLevel` and to retrieve
      the currently active level using the `infoLogLevel` method.
      
      Test Plan:
      make clean jclean rocksdbjava jtest
      mvn -f rocksjni.pom package
      
      Reviewers: adamretter, ankgup87, yhchiang
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D34755
      57f2a00c
    • F
      [RocksJava] Change log level at runtime in custom logger · 814627af
      fyrz 提交于
      This commit introduces the possibility to change the log level
      of a used custom logger at runtime.
      814627af
    • F
      [RocksJava] Logging JNI callback · a3bd4142
      fyrz 提交于
      Within this commit a new AbstractLogger was introduced
      which pushes info log messages all the way up to Java.
      a3bd4142
  2. 14 3月, 2015 15 次提交
    • M
      Switch to use_existing_db=1 for updaterandom and mergerandom · 58878f1c
      Mark Callaghan 提交于
      Summary:
      Without this change about half of the updaterandom reads and merge puts will be for keys that don't exist.
      I think it is better for these tests to start with a full database and use fillseq to fill it.
      
      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/D35043
      58878f1c
    • 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
  3. 13 3月, 2015 9 次提交
  4. 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
  5. 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
  6. 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
  7. 07 3月, 2015 2 次提交
    • 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