1. 02 3月, 2016 3 次提交
  2. 01 3月, 2016 8 次提交
    • S
      Recompute compaction score after scheduling manual compaction · b5b1db16
      sdong 提交于
      Summary: After we made manual compaction runnable concurrently with automaticallly compaction, we need to run ComputeCompactionScore() to prepare a coming compaction picking call before the compaction finishes.
      
      Test Plan: Run existing tests.
      
      Reviewers: yhchiang, IslamAbdelRahman, andrewkr, kradhakrishnan, anthony, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54891
      b5b1db16
    • A
      TransactionDB:ReinitializeTransaction · 5ea9aa3c
      agiardullo 提交于
      Summary: Add function to reinitialize a transaction object so that it can be reused.  This is an optimization so users can potentially avoid reallocating transaction objects.
      
      Test Plan: added tests
      
      Reviewers: yhchiang, kradhakrishnan, IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: jkedgar, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D53835
      5ea9aa3c
    • S
      Introduce Iterator::GetProperty() and replace Iterator::IsKeyPinned() · 1f595414
      sdong 提交于
      Summary:
      Add Iterator::GetProperty(), a way for users to communicate with iterator, and turn Iterator::IsKeyPinned() with it.
      As a follow-up, I'll ask a property as the version number attached to the iterator
      
      Test Plan: Rerun existing tests and add a negative test case.
      
      Reviewers: yhchiang, andrewkr, kradhakrishnan, anthony, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54783
      1f595414
    • I
      Merge pull request #1020 from gongsu832/master · 67789419
      Igor Canadi 提交于
      Modified Makefile and build_tools/build_detect_platform to compile on…
      67789419
    • A
      Handle concurrent manifest update and backup creation · 69c471bd
      Andrew Kryczka 提交于
      Summary:
      Fixed two related race conditions in backup creation.
      
      (1) CreateNewBackup() uses DB::DisableFileDeletions() to prevent table files
      from being deleted while it is copying; however, the MANIFEST file could still
      rotate during this time. The fix is to stop deleting the old manifest in the
      rotation logic. It will be deleted safely later when PurgeObsoleteFiles() runs
      (can only happen when file deletions are enabled).
      
      (2) CreateNewBackup() did not account for the CURRENT file being mutable.
      This is significant because the files returned by GetLiveFiles() contain a
      particular manifest filename, but the manifest to which CURRENT refers can
      change at any time. This causes problems when CURRENT changes between the call
      to GetLiveFiles() and when it's copied to the backup directory. To workaround this, I
      manually forge a CURRENT file referring to the manifest filename returned in
      GetLiveFiles().
      
      (2) also applies to the checkpointing code, so let me know if this approach is
      good and I'll make the same change there.
      
      Test Plan:
      new test for roll manifest during backup creation.
      
      running the test before this change:
      
        $ ./backupable_db_test --gtest_filter=BackupableDBTest.ChangeManifestDuringBackupCreation
        ...
        IO error: /tmp/rocksdbtest-9383/backupable_db/MANIFEST-000001: No such file or directory
      
      running the test after this change:
      
        $ ./backupable_db_test --gtest_filter=BackupableDBTest.ChangeManifestDuringBackupCreation
        ...
        [ RUN      ] BackupableDBTest.ChangeManifestDuringBackupCreation
        [       OK ] BackupableDBTest.ChangeManifestDuringBackupCreation (2836 ms)
      
      Reviewers: IslamAbdelRahman, anthony, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D54711
      69c471bd
    • R
    • R
      Merge branch 'master' of https://github.com/gongsu832/rocksdb · 99050904
      root 提交于
      Rebase for -momit-leaf-frame-pointer fix.
      99050904
    • I
      Merge pull request #1019 from javacruft/wip-omit-leaf-frame-pointer-archs · 3492889a
      Igor Canadi 提交于
      build: Improve -momit-leaf-frame-pointer usage
      3492889a
  3. 29 2月, 2016 1 次提交
  4. 27 2月, 2016 2 次提交
  5. 26 2月, 2016 1 次提交
  6. 25 2月, 2016 2 次提交
    • A
      Reorder instance variables in backup test for proper destruction order · 69c98f04
      Andrew Kryczka 提交于
      Summary:
      As titled. This fixes the tsan error caused by logger_ being used in
      backup_engine_'s destructor. It does not fix the transient unit test failure,
      which is caused by MANIFEST file changing while backup is happening.
      
      Test Plan:
      verified the tsan error no longer happens on either success or
      failure.
      
        $ COMPILE_WITH_TSAN=1 make -j32 backupable_db_test
        $ while ./backupable_db_test --gtest_filter=BackupableDBTest.CorruptionsTest ; do : ; done
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D54669
      69c98f04
    • S
      Add test to make sure DropColumnFamily doesn't impact existing iterators · 82f15fb1
      sdong 提交于
      Summary: Add a test case in ColumnFamilyTest.ReadDroppedColumnFamily to make sure existing iterator is not impacted by column family dropping.
      
      Test Plan: N/A
      
      Reviewers: igor, yhchiang, anthony, andrewkr, kradhakrishnan, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54657
      82f15fb1
  7. 24 2月, 2016 2 次提交
    • S
      Fix assert failure when DBImpl::SyncWAL() conflicts with log rolling · 38201b35
      sdong 提交于
      Summary: DBImpl::SyncWAL() releases db mutex before calling DBImpl::MarkLogsSynced(), while inside DBImpl::MarkLogsSynced() we assert there is none or one outstanding log file. However, a memtable switch can happen in between and causing two or outstanding logs there, failing the assert. The diff adds a unit test that repros the issue and fix the assert so that the unit test passes.
      
      Test Plan: Run the new tests.
      
      Reviewers: anthony, kolmike, yhchiang, IslamAbdelRahman, kradhakrishnan, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54621
      38201b35
    • Y
      IOStatsContext::ToString() add option to exclude zero counters · 2568985a
      Yi Wu 提交于
      Summary: similar to D52809 add option to exclude zero counters.
      
      Test Plan:
      [yiwu@dev4504.prn1 ~/rocksdb] ./iostats_context_test
      [==========] Running 1 test from 1 test case.
      [----------] Global test environment set-up.
      [----------] 1 test from IOStatsContextTest
      [ RUN      ] IOStatsContextTest.ToString
      [       OK ] IOStatsContextTest.ToString (0 ms)
      [----------] 1 test from IOStatsContextTest (0 ms total)
      
      [----------] Global test environment tear-down
      [==========] 1 test from 1 test case ran. (0 ms total)
      [  PASSED  ] 1 test.
      
      Reviewers: anthony, yhchiang, andrewkr, IslamAbdelRahman, kradhakrishnan, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54591
      2568985a
  8. 23 2月, 2016 3 次提交
    • A
      Redo SyncPoints for flush while rolling test · b0469166
      Andrew Kryczka 提交于
      Summary:
      There was a race condition in the test where the rolling thread
      acquired the mutex before the flush thread pinned the logger. Rather than add
      more complicated synchronization to fix it, I followed Siying's suggestion to
      use SyncPoint in the test code.
      
      Comments in the LoadDependency() invocation explain the reason for each of the
      sync points.
      
      Test Plan:
      Ran test 1000 times for tsan/asan. Will wait for all sandcastle tests
      to finish before committing since this is a tricky test.
      
      Reviewers: IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D54615
      b0469166
    • Y
      Revert "Revert "Fixed the bug when both whole_key_filtering and prefix_extractor are set."" · 291ae4c2
      Yueh-Hsuan Chiang 提交于
      Summary:
      This reverts commit 73c31377, which mistakenly
      reverts 73c31377 that fixes a bug when both
      whole_key_filtering and prefix_extractor are set
      
      Test Plan: revert the patch
      
      Reviewers: anthony, IslamAbdelRahman, rven, kradhakrishnan, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D52707
      291ae4c2
    • M
      Fixed CompactFiles() spuriously failing or corrupting DB · eef63ef8
      Mike Kolupaev 提交于
      Summary:
      We started getting two kinds of crashes since we started using `DB::CompactFiles()`:
      (1) `CompactFiles()` fails saying something like "/data/logdevice/4440/shard12/012302.sst: No such file or directory", and presumably makes DB read-only,
      (2) DB fails to open saying "Corruption: Can't access /267000.sst: IO error: /data/logdevice/4440/shard1/267000.sst: No such file or directory".
      
      AFAICT, both can be explained by background thread deleting compaction output as "obsolete" while it's being written, before it's committed to manifest. If it ends up committed to the manifest, we get (2); if compaction notices the disappearance and fails, we get (1). The internal tasks t10068021 and t10134177 have some details about the investigation that led to this.
      
      Test Plan: `make -j check`; the new test fails to reopen the DB without the fix
      
      Reviewers: yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: dhruba, sdong
      
      Differential Revision: https://reviews.facebook.net/D54561
      eef63ef8
  9. 20 2月, 2016 6 次提交
  10. 19 2月, 2016 2 次提交
  11. 18 2月, 2016 6 次提交
  12. 17 2月, 2016 4 次提交