1. 10 6月, 2016 4 次提交
  2. 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
  3. 08 6月, 2016 6 次提交
    • F
      Fix for GCC 5.4 (#1157) · 1ba45222
      Frank Celler 提交于
      GCC 5.4 will complain (see also options_parser.cc):
      
          /home/abuild/rpmbuild/BUILD/arangodb-3.0.0r1/3rdParty/rocksdb/rocksdb/util/options_builder.cc: In function 'rocksdb::CompactionStyle rocksdb::{anonymous}::PickCompactionStyle(size_t, int, int, uint64_t)':
          /home/abuild/rpmbuild/BUILD/arangodb-3.0.0r1/3rdParty/rocksdb/rocksdb/util/options_builder.cc:29:7: error: 'log' is not a member of 'std'
                 std::log(target_db_size / write_buffer_size) / std::log(kBytesForLevelMultiplier)));
                 ^
          /home/abuild/rpmbuild/BUILD/arangodb-3.0.0r1/3rdParty/rocksdb/rocksdb/util/options_builder.cc:29:7: note: suggested alternative:
          In file included from /usr/include/features.h:365:0,
                           from /usr/include/math.h:26,
                           from /home/abuild/rpmbuild/BUILD/arangodb-3.0.0r1/3rdParty/rocksdb/rocksdb/util/options_builder.cc:6:
          /usr/include/bits/mathcalls.h:109:1: note:   'log'
           __MATHCALL_VEC (log,, (_Mdouble_ __x));
      1ba45222
    • A
    • A
      Adding test for contiguous WAL detection · a73b26f6
      Anirban Rahut 提交于
      Summary:
      Add a test to detect that when WAL gets truncated,
      seq no's are checked to be contiguous.
      
      This test is put in ColumnFamilyTest as it has the necessary
      infrastructure/functions for flushing column families, which
      we use to ensure 2 active WAL files
      
      Test Plan:
      This is a test, no feature has been added.
      This test fails today and hence disabled
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: lgalanis, dhruba, andrewkr, pritamdamania
      
      Differential Revision: https://reviews.facebook.net/D59253
      a73b26f6
    • S
      Fix CLANG build break caused by the recent Persistent Cache change · 098da834
      sdong 提交于
      Test Plan: USE_CLANG=1 make all check -j32
      
      Reviewers: andrewkr, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59313
      098da834
    • I
      Use gvfs links in dependencies.sh · 54db29b8
      Islam AbdelRahman 提交于
      Summary:
      Update `build_tools/update_dependencies.sh` to use /mnt/gvfs path in dependencies.sh
      This should prevent us from having errors because of changing the path of a compiler or a library
      
      Test Plan:
      make all -j64
      USE_CLANG make all -j64
      ROCKSDB_FBCODE_BUILD_WITH_481=1 make all -j64
      
      Reviewers: andrewkr, sdong, yiwu
      
      Reviewed By: yiwu
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D59295
      54db29b8
    • K
      Persistent Read Cache (5) Volatile cache tier implementation · d755c62f
      krad 提交于
      Summary:
      This provides provides an implementation of PersistentCacheTier that is
      specialized for RAM. This tier does not persist data though.
      
      Why do we need this tier ?
      
      This is ideal as tier 0. This tier can host data that is too hot.
      
      Why can't we use Cache variants ?
      
      Yes you can use them instead. This tier can potentially outperform BlockCache
      in RAW mode by virtue of compression and compressed cache in block cache doesn't
      seem very popular. Potentially this tier can be modified to under stand the
      disadvantage of the tier below and retain data that the tier below is bad at
      handling (for example index and bloom data that is huge in size)
      
      Test Plan: Run unit tests added
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D57069
      d755c62f
  4. 07 6月, 2016 6 次提交
  5. 06 6月, 2016 3 次提交
  6. 04 6月, 2016 5 次提交
    • A
      env_basic_test library for testing new Envs [pluggable Env part 3] · 5aca977b
      Andrew Kryczka 提交于
      Summary:
      - Provide env_test as a static library. We will build it for future releases so internal Envs can use env_test by linking against this library.
      - Add tests for CustomEnv, which is configurable via ENV_TEST_URI environment variable. It uses the URI-based Env lookup (depends on D58449).
      - Refactor env_basic_test cases to use a unique/configurable directory for test files.
      
      Test Plan:
      built a test binary against librocksdb_env_test.a. It registered the
      default Env with URI prefix "a://".
      
      - verify runs all CustomEnv tests when URI with correct prefix is provided
      
      ```
      $ ENV_TEST_URI="a://ok" ./tmp --gtest_filter="CustomEnv/*"
      ...
      [  PASSED  ] 12 tests.
      ```
      
      - verify runs no CustomEnv tests when URI with non-matching prefix is provided
      
      ```
      $ ENV_TEST_URI="b://ok" ./tmp --gtest_filter="CustomEnv/*"
      ...
      [  PASSED  ] 0 tests.
      ```
      
      Reviewers: ldemailly, IslamAbdelRahman, lightmark, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D58485
      5aca977b
    • U
      Adding support for sharing throttler between multiple backup and restores · 1147e5b0
      Uddipta Maity 提交于
      Summary:
      Rocksdb backup and restore rate limiting is currently done per backup/restore.
      So, it is difficult to control rate across multiple backup/restores. With this
      change, a throttler can be provided. If a throttler is provided, it is used.
      Otherwise, a new throttler is created based on the actual rate limits specified
      in the options.
      
      Test Plan: Added unit tests
      
      Reviewers: ldemailly, andrewkr, sdong
      
      Reviewed By: andrewkr
      
      Subscribers: igor, yiwu, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D56265
      1147e5b0
    • A
      Create env_basic_test [pluggable Env part 2] · 6e6622ab
      Andrew Kryczka 提交于
      Summary:
      Extracted basic Env-related tests from mock_env_test and memenv_test into a
      parameterized test for Envs: env_basic_test.
      
      Depends on D58449. (The dependency is here only so I can keep this series of
      diffs in a chain -- there is no dependency on that diff's code.)
      
      Test Plan: ran tests
      
      Reviewers: IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D58635
      6e6622ab
    • A
      Add statistics field to show total size of index and filter blocks in block cache · e5328779
      Aaron Gao 提交于
      Summary: With `table_options.cache_index_and_filter_blocks = true`, index and filter blocks are stored in block cache. Then people are curious how much of the block cache total size is used by indexes and bloom filters. It will be nice we have a way to report that. It can help people tune performance and plan for optimized hardware setting. We add several enum values for db Statistics. BLOCK_CACHE_INDEX/FILTER_BYTES_INSERT - BLOCK_CACHE_INDEX/FILTER_BYTES_ERASE = current INDEX/FILTER total block size in bytes.
      
      Test Plan:
      write a test case called `DBBlockCacheTest.IndexAndFilterBlocksStats`. The result is:
      ```
      [gzh@dev9927.prn1 ~/local/rocksdb]  make db_block_cache_test -j64 && ./db_block_cache_test --gtest_filter=DBBlockCacheTest.IndexAndFilterBlocksStats
      Makefile:101: Warning: Compiling in debug mode. Don't use the resulting binary in production
        GEN      util/build_version.cc
        make: `db_block_cache_test' is up to date.
        Note: Google Test filter = DBBlockCacheTest.IndexAndFilterBlocksStats
        [==========] Running 1 test from 1 test case.
        [----------] Global test environment set-up.
        [----------] 1 test from DBBlockCacheTest
        [ RUN      ] DBBlockCacheTest.IndexAndFilterBlocksStats
        [       OK ] DBBlockCacheTest.IndexAndFilterBlocksStats (689 ms)
        [----------] 1 test from DBBlockCacheTest (689 ms total)
      
        [----------] Global test environment tear-down
        [==========] 1 test from 1 test case ran. (689 ms total)
        [  PASSED  ] 1 test.
      ```
      
      Reviewers: IslamAbdelRahman, andrewkr, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D58677
      e5328779
    • A
      a791a2cf
  7. 03 6月, 2016 7 次提交
    • A
      Env registry for URI-based Env selection [pluggable Env part 1] · af0c9ac0
      Andrew Kryczka 提交于
      Summary:
      This enables configurable Envs without recompiling. For example, my
      next diff will make env_test test an Env created by NewEnvFromUri(). Then,
      users can determine which Env is tested simply by providing the URI for
      NewEnvFromUri() (e.g., through a CLI argument or environment variable).
      
      The registration process allows us to register any Env that is linked with the
      RocksDB library, so we can register our internal Envs as well.
      
      The registration code is inspired by our internal InitRegistry.
      
      Test Plan: new unit test
      
      Reviewers: IslamAbdelRahman, lightmark, ldemailly, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, dhruba, andrewkr
      
      Differential Revision: https://reviews.facebook.net/D58449
      af0c9ac0
    • J
      allow updating block cache capacity from C (#1149) · 02ec8154
      Jan Doms 提交于
      02ec8154
    • A
      fix flaky sim_cache_test · 630b732c
      Aaron Gao 提交于
      Summary: fix flaky test
      
      Test Plan: `make all check`
      
      Reviewers: sdong, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59157
      630b732c
    • K
      Add persistent cache to Windows build system · 62d54809
      krad 提交于
      Summary: Add hash table (under persistent cache) to CMake list
      
      Test Plan: Run hash_test in windows and make check in Linux
      
      Reviewers: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59151
      62d54809
    • A
      Fix race condition in SwitchMemtable · 84295865
      Andrew Kryczka 提交于
      Summary:
      MemTableList::current_ could be written by background flush thread and
      simultaneously read in the user thread (NumNotFlushed() is used in
      SwitchMemtable()). Use the lock to prevent this case. Found the error from tsan.
      
      Related: D58833
      
      Test Plan:
        $ OPT=-g COMPILE_WITH_TSAN=1 make -j64 db_test
        $ TEST_TMPDIR=/dev/shm/rocksdb ./db_test --gtest_filter=DBTest.RepeatedWritesToSameKey
      
      Reviewers: lightmark, sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59139
      84295865
    • Y
      Allows db_bench to take an options file · 88acd932
      Yueh-Hsuan Chiang 提交于
      Summary:
      This patch allows db_bench to initialize it's RocksDB Options via a
      options file, specified by the --options_file flag.  Note that if
      --options_file flag is set, then it has higher priority than the
      command-line argument.
      
      Test Plan: db_bench_tool_test
      
      Reviewers: sdong, IslamAbdelRahman, kradhakrishnan, yiwu, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D58533
      88acd932
    • P
      Add a callback for when memtable is moved to immutable (#1137) · 3a276b0c
      PraveenSinghRao 提交于
      * Create a callback for memtable becoming immutable
      
      Create a callback for memtable becoming immutable
      
      Create a callback for memtable becoming immutable
      
      moved notification outside the lock
      
      Move sealed notification to unlocked portion of SwitchMemtable
      
      * fix lite build
      3a276b0c
  8. 02 6月, 2016 5 次提交
    • Y
      Allow regression test to run db_bench at a remost host · 8cf0f86d
      Yueh-Hsuan Chiang 提交于
      Summary:
      This patch does the following improvement on the regression_test.sh
      * allows db_bench being executed at a remost host while storing the
        benchmark results locally.
      * kills all db_bench related processes before running db_bench
      * better error handling.
      
      Test Plan:
      1. Run regression_test.sh both locally and remotely
      2. Run multiple regression_test.sh at the same time and make sure
         i. Only one runs successfully.
         ii. The one that runs successfully will kill all other db_bench
             processes before it runs any benchmark.
      
      Reviewers: sdong, yiwu, gunnarku
      
      Reviewed By: gunnarku
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D58611
      8cf0f86d
    • K
      Fix Windows build break · 27ad1707
      krad 提交于
      Summary:
      Direct IO checkin breaks Windows build. Fixing the code to work for
      Windows.
      
      Test Plan: Run env_test in Windows 10 and make check in Linux
      
      Reviewers: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59073
      27ad1707
    • M
      Small tweaks to logging to track the number of immutable memtables · 936973d1
      Mike Kolupaev 提交于
      Summary:
      We see some write stalls because of number of unflushed memtables. With existing logging I couldn't figure out what's happening exactly. See internal task t11446054 for details if interested. This diff adds:
      - logging of memtable creation at info level; I wanted it on multiple occasions for different reasons; also include number of immutable memtables,
      - logging of number of remaining immutable memtables after a flush.
      
      Test Plan: ran tests
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D58833
      936973d1
    • S
      add readahead size option (#1146) · 21c047ab
      siddontang 提交于
      21c047ab
    • V
      Assert boundary checks for SetPerfLevel() · 71c7eed9
      Vasile Paraschiv 提交于
      Summary: Add asserts around PerfLevel enum
      
      Test Plan: make all check -j32
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D59007
      71c7eed9