1. 05 Feb, 2015 9 commits
    • Yueh-Hsuan Chiang's avatar
      Add a counter for collecting the wait time on db mutex. · 181191a1
      Yueh-Hsuan Chiang authored
      Summary:
      Add a counter for collecting the wait time on db mutex.
      Also add MutexWrapper and CondVarWrapper for measuring wait time.
      
      Test Plan:
      ./db_test
      export ROCKSDB_TESTS=MutexWaitStats
      ./db_test
      
      verify stats output using db_bench
      make clean
      make release
      ./db_bench --statistics=1 --benchmarks=fillseq,readwhilewriting --num=10000 --threads=10
      
      Sample output:
          rocksdb.db.mutex.wait.micros COUNT : 7546866
      
      Reviewers: MarkCallaghan, rven, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32787
      181191a1
    • Igor Canadi's avatar
      Fix wal_dir not getting cleaned · f36d394a
      Igor Canadi authored
      f36d394a
    • sdong's avatar
      db_test: fix a data race in SpecialEnv · 53ae09c3
      sdong authored
      Summary: db_test's test class SpecialEnv has a thread unsafe variable rnd_ but it can be accessed by multiple threads. It is complained by TSAN. Protect it by a mutex.
      
      Test Plan: Run the test
      
      Reviewers: yhchiang, rven, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D32895
      53ae09c3
    • sdong's avatar
      Fix fault_injestion_test · fe9f6911
      sdong authored
      Summary: A bug in MockEnv causes fault_injestion_test to fail. I don't know why it doesn't fail every time but it doesn't seem to be right.
      
      Test Plan:
      Run fault_injestion_test
      Also run db_test with MEM_ENV=1 until the first failure.
      
      Reviewers: yhchiang, rven, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D32877
      fe9f6911
    • Igor Canadi's avatar
      Put db_test back to TESTS in Makefile · b37f5ffc
      Igor Canadi authored
      b37f5ffc
    • Igor Canadi's avatar
      Fix stack trace on mac · 108470e9
      Igor Canadi authored
      108470e9
    • Igor Canadi's avatar
      Fix compaction_picker_test · 3e53760f
      Igor Canadi authored
      3e53760f
    • Igor Canadi's avatar
      Fix data race #3 · e39f4f6c
      Igor Canadi authored
      Summary: Added requirement that ComputeCompactionScore() be executed in mutex, since it's accessing being_compacted bool, which can be mutated by other threads. Also added more comments about thread safety of FileMetaData, since it was a bit confusing. However, it seems that FileMetaData doesn't have data races (except being_compacted)
      
      Test Plan: Ran 100 ConvertCompactionStyle tests with thread sanitizer. On master -- some failures. With this patch -- none.
      
      Reviewers: yhchiang, rven, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32283
      e39f4f6c
    • sdong's avatar
      Get() to use prefix bloom filter when filter is not block based · e63140d5
      sdong authored
      Summary:
      Get() now doesn't make use of bloom filter if it is prefix based. Add the check.
      Didn't touch block based bloom filter. I can't fully reason whether it is correct to do that. But it's straight-forward to for full bloom filter.
      
      Test Plan:
      make all check
      Add a test case in DBTest
      
      Reviewers: rven, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: MarkCallaghan, leveldb, dhruba, yoshinorim
      
      Differential Revision: https://reviews.facebook.net/D31941
      e63140d5
  2. 04 Feb, 2015 6 commits
    • Yueh-Hsuan Chiang's avatar
      Add utility functions for interpreting ThreadStatus · 678503eb
      Yueh-Hsuan Chiang authored
      Summary:
      Add ThreadStatus::GetOperationName() and ThreadStatus::GetStateName(),
      two utility functions that help interpreting ThreadStatus.
      
      Test Plan: ./thread_list_test
      
      Reviewers: sdong, rven, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32793
      678503eb
    • Igor Sugak's avatar
      rocksdb: Enable scan-build static analysis · 4d98e293
      Igor Sugak authored
      Summary:
      Added new target ##make analyze## into Makefile. This command runs clang static analyzer and builds the sources as ##make all##. The result report is put into ##$(RocksDbSourceRoot)/can_build_report/##
      
      If the development environment is a Facebook devserver and ##ROCKSDB_NO_FBCODE## is not set, then scan-build is used from fbcode. If it is run not on a Facebook devserver, scan-build should be available in ##$PATH##. I'll add details to wiki how to install scan-build on a non Facebook devserver environment.
      
      Test Plan:
      Run the fallowing commands on a Facebook devserver and Mac OS, and ensure no build or test errors.
      
      ```
      % make all check -j32
      % make clean
      % USE_CLANG=1 make all -j32
      % make analyze
      % USE_CLANG=1 make analyze
      ```
      
      Reviewers: sdong, lgalanis, leveldb, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D32799
      4d98e293
    • Yueh-Hsuan Chiang's avatar
      Remove unused util/thread_event_info.h · 756e1f15
      Yueh-Hsuan Chiang authored
      Summary:
      Remove unused util/thread_event_info.h, which is replaced by
      util/thread_operation.h
      
      Test Plan:
      make dbg -j32
      make release -j32
      756e1f15
    • Venkatesh Radhakrishnan's avatar
      Changes for supporting cross functional tests for inplace_update · dad98dd4
      Venkatesh Radhakrishnan authored
      Summary:
      This diff containes the changes to the code and db_test
      for supporting cross functional tests for inplace_update
      
      Test Plan: Run XF with inplace_test and also without
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32367
      dad98dd4
    • sdong's avatar
      Divide test DBIteratorTest.DBIterator to smaller tests · 9898f639
      sdong authored
      Summary:
      When building on my host, I saw warning:
      
      In file included from db/db_iter_test.cc:17:0:
      db/db_iter_test.cc: In member function ‘void rocksdb::_Test_DBIterator::_Run()’:
      ./util/testharness.h:147:14: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
       void TCONCAT(_Test_,name)::_Run()
                    ^
      ./util/testharness.h:134:23: note: in definition of macro ‘TCONCAT1’
       #define TCONCAT1(a,b) a##b
                             ^
      ./util/testharness.h:147:6: note: in expansion of macro ‘TCONCAT’
       void TCONCAT(_Test_,name)::_Run()
            ^
      db/db_iter_test.cc:589:1: note: in expansion of macro ‘TEST’
       TEST(DBIteratorTest, DBIterator) {
       ^
      
      By dividing the test into small tests, it should fix the problem
      
      Test Plan: Run the test
      
      Reviewers: rven, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32679
      9898f639
    • sdong's avatar
      Options::PrepareForBulkLoad() to increase parallelism of flushes · 829363b4
      sdong authored
      Summary: Increasing parallelism of flushes will help bulk load throughput.
      
      Test Plan: Compile it.
      
      Reviewers: MarkCallaghan, yhchiang, rven, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D32685
      829363b4
  3. 03 Feb, 2015 4 commits
  4. 02 Feb, 2015 3 commits
  5. 01 Feb, 2015 1 commit
  6. 31 Jan, 2015 15 commits
  7. 30 Jan, 2015 2 commits