1. 17 6月, 2016 2 次提交
  2. 16 6月, 2016 3 次提交
  3. 15 6月, 2016 6 次提交
    • I
      Fix clang build · 8366e10f
      Islam AbdelRahman 提交于
      Summary: Fix clang build
      
      Test Plan: USE_CLANG=1 make check -j64
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59667
      8366e10f
    • S
      Move away from enum char value -1 · 0babce57
      sdong 提交于
      Summary: char is not signed in some platforms. Having negative values confuse those compilers.
      
      Test Plan: Run all existing tests.
      
      Reviewers: andrewkr, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59619
      0babce57
    • I
      Optimize BlockIter::Prev() by caching decoded entries · 812dbfb4
      Islam AbdelRahman 提交于
      Summary:
      Right now the way we do BlockIter::Prev() is like this
      
      - Go to the beginning of the restart interval
      - Keep moving forward (and decoding keys using ParseNextKey()) until we reach the desired key
      
      This can be optimized by caching the decoded entries in the first pass and reusing them in consecutive BlockIter::Prev() calls
      
      Before caching
      
      ```
      DEBUG_LEVEL=0 make db_bench -j64 && ./db_bench --benchmarks="readreverse" --db="/dev/shm/bench_prev_opt/" --use_existing_db --disable_auto_compactions
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.413 micros/op 2423972 ops/sec;  268.2 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.414 micros/op 2413867 ops/sec;  267.0 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.410 micros/op 2440881 ops/sec;  270.0 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.414 micros/op 2417298 ops/sec;  267.4 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.413 micros/op 2421682 ops/sec;  267.9 MB/s
      ```
      
      After caching
      
      ```
      DEBUG_LEVEL=0 make db_bench -j64 && ./db_bench --benchmarks="readreverse" --db="/dev/shm/bench_prev_opt/" --use_existing_db --disable_auto_compactions
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.324 micros/op 3088955 ops/sec;  341.7 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.335 micros/op 2980999 ops/sec;  329.8 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.341 micros/op 2929681 ops/sec;  324.1 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.344 micros/op 2908490 ops/sec;  321.8 MB/s
      DB path: [/dev/shm/bench_prev_opt/]
      readreverse  :       0.338 micros/op 2958404 ops/sec;  327.3 MB/s
      ```
      
      Test Plan: COMPILE_WITH_ASAN=1 make check -j64
      
      Reviewers: andrewkr, yiwu, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, yoshinorim
      
      Differential Revision: https://reviews.facebook.net/D59463
      812dbfb4
    • K
      Minor bug fix with log name · 550bf895
      krad 提交于
      550bf895
    • I
      Fix examples/Makefile jemalloc error · 886af591
      Islam AbdelRahman 提交于
      Summary: compile and link with jemalloc in examples binaries
      
      Test Plan:
      cd examples
      make -j64
      
      Reviewers: andrewkr, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, yoshinorim
      
      Differential Revision: https://reviews.facebook.net/D59457
      886af591
    • A
      Expose save points in Java WriteBatch and WBWI (#1092) · e3b1e3df
      Adam Retter 提交于
      * Java API - Expose SetSavePoint and RollbackToRestorePoint for WriteBatch and WriteBatchWithIndex
      
      * Minor cleanup
      e3b1e3df
  4. 14 6月, 2016 6 次提交
    • I
      Remove wasteful instrumentation in FullMerge (stacked on D59577) · f5177c76
      Islam AbdelRahman 提交于
      Summary:
      [ This diff is stacked on top of D59577 ]
      
      We keep calling timer.ElapsedNanos() on every call to MergeOperator::FullMerge even when statistics are disabled, this is wasteful.
      
      I run the readseq benchmark on a DB containing 100K merge operands for 100K keys (1 operand per key) with 1GB block cache
      I see slight performance improvment
      
      Original results
      
      ```
      $ ./db_bench --benchmarks="readseq,readseq,readseq,readseq,readseq,readseq,readseq,readseq,readseq" --merge_operator="max" --merge_keys=100000 --num=100000 --db="/dev/shm/100K_merge_compacted/" --cache_size=1073741824 --use_existing_db --disable_auto_compactions
      ------------------------------------------------
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.498 micros/op 2006597 ops/sec;  222.0 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.295 micros/op 3393627 ops/sec;  375.4 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.285 micros/op 3511155 ops/sec;  388.4 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.286 micros/op 3500470 ops/sec;  387.2 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.283 micros/op 3530751 ops/sec;  390.6 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.289 micros/op 3464811 ops/sec;  383.3 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.277 micros/op 3612814 ops/sec;  399.7 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.283 micros/op 3539640 ops/sec;  391.6 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.285 micros/op 3503766 ops/sec;  387.6 MB/s
      ```
      
      After patch
      
      ```
      $ ./db_bench --benchmarks="readseq,readseq,readseq,readseq,readseq,readseq,readseq,readseq,readseq" --merge_operator="max" --merge_keys=100000 --num=100000 --db="/dev/shm/100K_merge_compacted/" --cache_size=1073741824 --use_existing_db --disable_auto_compactions
      ------------------------------------------------
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.476 micros/op 2100119 ops/sec;  232.3 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.278 micros/op 3600887 ops/sec;  398.4 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.275 micros/op 3636698 ops/sec;  402.3 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.271 micros/op 3691661 ops/sec;  408.4 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.273 micros/op 3661534 ops/sec;  405.1 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.276 micros/op 3627106 ops/sec;  401.3 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.272 micros/op 3682635 ops/sec;  407.4 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.266 micros/op 3758331 ops/sec;  415.8 MB/s
      DB path: [/dev/shm/100K_merge_compacted/]
      readseq      :       0.266 micros/op 3761907 ops/sec;  416.2 MB/s
      ```
      
      Test Plan: make check -j64
      
      Reviewers: yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59583
      f5177c76
    • G
      Remove dead Jenkins code and support `arc diff --preview` in RocksDB · 97fd2a63
      Gunnar Kudrjavets 提交于
      Summary:
      Two changes here:
      
      - Remove dead Jenkins related code which is no longer relevant.
      - Support `arc diff --preview`. Currently it doesn't work because a step which applies a diff assumes that a revision has been created. Which in case of `--preview` isn't. Therefore diff can't be applied and validation fails. Solution is to use `--nocommit` because for validation purposes performing a commit isn't necessary.
      
      Test Plan:
      - Current changes are submitted using `arc diff --preview`.
      - All the pre-commit verification tests passed.
      
      Reviewers: kradhakrishnan, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, andrewkr, jtolmer, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59571
      97fd2a63
    • I
      Reuse TimedFullMerge instead of FullMerge + instrumentation · 7c919dec
      Islam AbdelRahman 提交于
      Summary:
      We have alot of code duplication whenever we call FullMerge we keep duplicating the instrumentation and statistics code
      This is a simple diff to refactor the code to use TimedFullMerge instead of FullMerge
      
      Test Plan: COMPILE_WITH_ASAN=1 make check -j64
      
      Reviewers: andrewkr, yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59577
      7c919dec
    • S
      Remove the comments saying allow_concurrent_memtable_write and... · 9a33a723
      sdong 提交于
      Remove the comments saying allow_concurrent_memtable_write and enable_write_thread_adaptive_yield are not stable
      
      Summary: allow_concurrent_memtable_write and enable_write_thread_adaptive_yield went through extensive stress test and benchmarks. Should be considered stable.
      
      Test Plan: N/A
      
      Reviewers: ngbronson, yhchiang, IslamAbdelRahman, dhruba
      
      Reviewed By: dhruba
      
      Subscribers: MarkCallaghan, leveldb, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59415
      9a33a723
    • K
      Fix tsan error · 81f6b33d
      krad 提交于
      Summary:
      The tsan error was because the random implementation we have is not
      thread safe, using Random::GetTLSInstance
      
      Test Plan: Run tests in Linux
      
      Reviewers: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59559
      81f6b33d
    • Y
      add option to not flush memtable on open() · bc8af90e
      Yi Wu 提交于
      Summary:
      Add option to not flush memtable on open()
      In case the option is enabled, don't delete existing log files by not updating log numbers to MANIFEST.
      Will still flush if we need to (e.g. memtable full in the middle). In that case we also flush final memtable.
      If wal_recovery_mode = kPointInTimeRecovery, do not halt immediately after encounter corruption. Instead, check if seq id of next log file is last_log_sequence + 1. In that case we continue recovery.
      
      Test Plan: See unit test.
      
      Reviewers: dhruba, horuff, sdong
      
      Reviewed By: sdong
      
      Subscribers: benj, yhchiang, andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D57813
      bc8af90e
  5. 12 6月, 2016 1 次提交
  6. 11 6月, 2016 10 次提交
  7. 10 6月, 2016 8 次提交
  8. 09 6月, 2016 4 次提交
    • D
      netflix use-case · 00a05872
      dhruba borthakur 提交于
      00a05872
    • A
      use branch names in format compatibility test · 5091dfc1
      Andrew Kryczka 提交于
      Summary:
      We had to go back and update the g++ path for 4.4.fb-4.8.fb. So the
      path is now fixed on the branches, but can't be fixed on the tags since they're
      immutable. By making format compatibility tests use branch names (when
      available), backported fixes like this will be used without having to re-release.
      
      Also removed v1.5.7 and v2.1 because make fails.
      
      Test Plan:
        $ build_tools/rocksdb-lego-determinator run_format_compatible
      
      Reviewers: sdong, lightmark, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59355
      5091dfc1
    • I
      Use valgrind built with gcc-4.9-glibc-2.20 · edc764e9
      Islam AbdelRahman 提交于
      Summary:
      Right now we use valgrind built with gcc-5-glibc-2.23 which keep generating this error everywhere
      
      ```
      ==3224756== Conditional jump or move depends on uninitialised value(s)
      ==3224756==    at 0x401AD68: index (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x4008933: _dl_map_object (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x4000ECC: map_doit (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x40101C7: _dl_catch_error (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x4000B34: do_preload (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x400458C: dl_main (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x40185DB: _dl_sysdep_start (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x4004F39: _dl_start (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==    by 0x4000CE7: ??? (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==  Uninitialised value was created by a stack allocation
      ==3224756==    at 0x4004519: dl_main (in /usr/local/fbcode/gcc-4.9-glibc-2.20/lib/ld-2.20.so)
      ==3224756==
      ```
      
      Test Plan: DISABLE_JEMALLOC=1 make valgrind_check -j64
      
      Reviewers: andrewkr, yiwu, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59343
      edc764e9
    • I
      Disable PersistentCacheTierTest.VolatileCacheInsertWithEviction test under TSAN temporarily · 8ff59b2b
      Islam AbdelRahman 提交于
      Summary: Disable the test under TSAN temporary to temporarily the build
      
      Test Plan: run the test under TSAN
      
      Reviewers: kradhakrishnan, andrewkr, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59337
      8ff59b2b