1. 25 6月, 2016 2 次提交
    • W
      delete 2nd level children for default env · 3fc713ed
      Wanning Jiang 提交于
      Summary: ensure no 2nd level children under test_dir_
      
      Test Plan: env_basic_test on 4 envs
      
      Reviewers: andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59979
      3fc713ed
    • A
      Refactor to use VersionSet [CF + RepairDB part 1/3] · 343507af
      Andrew Kryczka 提交于
      Summary:
      To support column families, it is easiest to use VersionSet to manage
      our column families (if we don't have Versions then ColumnFamilyData always
      behaves as a dummy column family). This diff only refactors the existing repair
      logic to use VersionSet; the next two parts will add support for multiple
      column families.
      
      Test Plan:
        $ ./repair_test
      
      Reviewers: yhchiang, IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59775
      343507af
  2. 24 6月, 2016 3 次提交
  3. 23 6月, 2016 3 次提交
  4. 22 6月, 2016 5 次提交
    • O
      Add a read option to enable background purge when cleaning up iterators · c4e19b77
      omegaga 提交于
      Summary:
      Add a read option `background_purge_on_iterator_cleanup` to avoid deleting files in foreground when destroying iterators.
      Instead, a job is scheduled in high priority queue and would be executed in a separate background thread.
      
      Test Plan: Add a variant of PurgeObsoleteFileTest. Turn on background purge option in the new test, and use sleeping task to ensure files are deleted in background.
      
      Reviewers: IslamAbdelRahman, sdong
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59499
      c4e19b77
    • I
      Update DB::AddFile() to ingest the file to the lowest possible level · fa813f74
      Islam AbdelRahman 提交于
      Summary:
      DB::AddFile() right now always add the ingested file to L0
      update the logic to add the file to the lowest possible level
      
      Test Plan: unit tests
      
      Reviewers: jkedgar, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, yoshinorim
      
      Differential Revision: https://reviews.facebook.net/D59637
      fa813f74
    • I
      Remove filter_deletes from crash_test · d6b79e2f
      Islam AbdelRahman 提交于
      Summary: filter_deletes option was removed, remove it from crash_test to fix it
      
      Test Plan: make crash_test
      
      Reviewers: yhchiang, andrewkr, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59901
      d6b79e2f
    • G
      Framework for enabling continuous RocksDB build and tests · a52e4d7d
      Gunnar Kudrjavets 提交于
      Summary:
      The main PHP code churn is caused by extracting the common code from `FacebookArcanistConfiguration.php` and `FacebookOldArcanistConfiguration.php` into `RocksDBCommonDeterminator.php`. This is necessary both for reducing the duplication of code and making sure that we can execute the common core logic separately from continuous runs.
      
      The main logic in `RocksDBCommonDeterminator.php` remains quite the same with the exception of some things:
      
      - Adding separation between the cases when a diff is submitted //vs.// when the code is triggered from a continuous run. There are certain actions which we should do in a case of diff only.
      
      - Adding reporting - now the person who authored the diff will receive e-mail notifications if any of the jobs have failed.
      
      - Enabling assertions and making sure that we'll terminate on failure. This is an internal code used by competent engineers, so instead of `if (!condition) { echo "Something"; exit(1); }` for every invariant I think that `assert(condition)` provides better readability with the same behavior. Especially taking into account that we're talking about things which shouldn't ever happen.
      
      Enabling this entire process will be triggered internally and will be a subject of a separate code review. We should discuss the details of triggering continuous RocksDB build and tests on that diff.
      
      Test Plan:
      - Make sure that `[p]arc diff` scenario isn't broken by verifying that tests validating this diff will pass.
      - Private testing of triggering the continuous build script.
      - Once the changes will land then author an internal job which will use the script and verify its validity.
      
      Reviewers: sdong, yhchiang, kradhakrishnan
      
      Reviewed By: kradhakrishnan
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59811
      a52e4d7d
    • I
      Makefile warning for invalid paths in make_config.mk · f9bd6677
      Islam AbdelRahman 提交于
      Summary:
      Update Makefile to show warnings when we have invalid paths in our make_config.mk file
      
      sample output
      
      ```
      $ make static_lib -j64
      Makefile:150: Warning: /mnt/gvfs/third-party2/libgcc/53e0eac8911888a105aa98b9a35fe61cf1d8b278/4.9.x/gcc-4.9-glibc-2.20/024dbc3/libs dont exist
      Makefile:150: Warning: /mnt/gvfs/third-party2/llvm-fb/b91de48a4974ec839946d824402b098d43454cef/stable/centos6-native/7aaccbe/../../src/clang/tools/scan-build/scan-build dont exist
        GEN      util/build_version.cc
      ```
      
      Test Plan: check that warning is printed visually
      
      Reviewers: sdong, yiwu, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59523
      f9bd6677
  5. 21 6月, 2016 2 次提交
  6. 18 6月, 2016 2 次提交
    • S
      Deprectate filter_deletes · 7b79238b
      sdong 提交于
      Summary: filter_deltes is not a frequently used feature. Remove it.
      
      Test Plan: Run all test suites.
      
      Reviewers: igor, yhchiang, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59427
      7b79238b
    • S
      Bulk load mode shouldn't stop ingest · 4939fc38
      sdong 提交于
      Summary: We introduced default slow down and stop condition, but didn't reset it in bulk load mode. Fix it.
      
      Test Plan: N/A
      
      Reviewers: igor, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59757
      4939fc38
  7. 17 6月, 2016 3 次提交
  8. 16 6月, 2016 3 次提交
  9. 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
  10. 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
  11. 12 6月, 2016 1 次提交
  12. 11 6月, 2016 4 次提交