1. 11 3月, 2016 3 次提交
  2. 09 3月, 2016 1 次提交
  3. 08 3月, 2016 4 次提交
  4. 05 3月, 2016 4 次提交
    • S
      Change Property name from "rocksdb.current_version_number" to... · 294bdf9e
      sdong 提交于
      Change Property name from "rocksdb.current_version_number" to "rocksdb.current-super-version-number"
      
      Summary: I realized I again is wrong about the naming convention. Let me change it to the correct one.
      
      Test Plan: Run unit tests.
      
      Reviewers: IslamAbdelRahman, kradhakrishnan, yhchiang, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D55041
      294bdf9e
    • Y
      Use pure if-then check instead of assert in EraseColumnFamilyInfo · bf1c4089
      Yueh-Hsuan Chiang 提交于
      Summary:
      Use pure if-then check instead of assert in EraseColumnFamilyInfo
      when the specified column family does not found in the cf_info_map_.
      So the second deletion will be no op instead of crash.
      
      Test Plan: existing test.
      
      Reviewers: sdong, anthony, kradhakrishnan, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D55023
      bf1c4089
    • Y
      Fix a bug where flush does not happen when a manual compaction is running · a7d4eb2f
      Yueh-Hsuan Chiang 提交于
      Summary:
      Currently, when rocksdb tries to run manual compaction to refit data into a level,
      there's a ReFitLevel() process that requires no bg work is currently running.
      When RocksDB plans to ReFitLevel(), it will do the following:
      
       1. pause scheduling new bg work.
       2. wait until all bg work finished
       3. do the ReFitLevel()
       4. unpause scheduling new bg work.
      
      However, as it pause scheduling new bg work at step one and waiting for all bg work
      finished in step 2, RocksDB will stop flushing until all bg work is done (which
      could take a long time.)
      
      This patch fix this issue by changing the way ReFitLevel() pause the background work:
      
      1. pause scheduling compaction.
      2. wait until all bg work finished.
      3. pause scheduling flush
      4. do ReFitLevel()
      5. unpause both flush and compaction.
      
      The major difference is that.  We only pause scheduling compaction in step 1 and wait
      for all bg work finished in step 2.  This prevent flush being blocked for a long time.
      Although there's a very rare case that ReFitLevel() might be in starvation in step 2,
      but it's less likely the case as flush typically finish very fast.
      
      Test Plan: existing test.
      
      Reviewers: anthony, IslamAbdelRahman, kradhakrishnan, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D55029
      a7d4eb2f
    • G
      Update benchmarks used to measure subcompaction performance · 68189f7e
      Gunnar Kudrjavets 提交于
      Summary: After closely working with Mark, Siying, and Yueh-Hsuan this set of changes reflects the updates needed to measure RocksDB subcompaction performance in a correct manner. The essence of the benchmark is executing `fillrandom` followed by `compact` with the correct set of options for various number of subcompactions specified.
      
      Test Plan: Tested internally to verify correctness and reliability.
      
      Reviewers: sdong, yhchiang, MarkCallaghan
      
      Reviewed By: MarkCallaghan
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D55089
      68189f7e
  5. 04 3月, 2016 4 次提交
  6. 03 3月, 2016 4 次提交
    • S
      Compaction always needs to be removed from level0_compactions_in_progress_ for universal compaction · ef204df7
      sdong 提交于
      Summary: We always put compaction to level0_compactions_in_progress_ for universal compaction, so we should also remove it. The bug causes assert failure when running manual compaction.
      
      Test Plan:
      TEST_TMPDIR=/dev/shm/ ./db_bench --benchmarks=fillrandom,compact --subcompactions=16 --compaction_style=1
      always fails on my host. After the fix, it doesn't fail any more.
      
      Reviewers: IslamAbdelRahman, andrewkr, kradhakrishnan, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D55017
      ef204df7
    • S
      Add Iterator Property rocksdb.iterator.version_number · e79ad9e1
      sdong 提交于
      Summary: We want to provide a way to detect whether an iterator is stale and needs to be recreated. Add a iterator property to return version number.
      
      Test Plan: Add two unit tests for it.
      
      Reviewers: IslamAbdelRahman, yhchiang, anthony, kradhakrishnan, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54921
      e79ad9e1
    • S
      Subcompaction boundary keys should not terminate after an empty level · 19ea40f8
      sdong 提交于
      Summary: Now we skip to add boundary keys to subcompaction candidates since we see an empty level. This makes subcompaction almost disabled for universal compaction. We should consider all files instead.
      
      Test Plan: Run existing tests.
      
      Reviewers: IslamAbdelRahman, andrewkr, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D55005
      19ea40f8
    • O
      Add parsing of missing DB options · deb08b82
      Omar Sandoval 提交于
      Summary: There are a few options in struct DBOptions that aren't handled by options_helper.cc. Add those missing options so they can be used by GetDBOptionsFromString() and friends.
      
      Test Plan: Updated options_test.cc, reran all tests.
      
      Reviewers: sdong, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D54603
      deb08b82
  7. 02 3月, 2016 6 次提交
    • A
      Get file attributes in bulk for VerifyBackup and CreateNewBackup · f8e90e87
      Andrew Kryczka 提交于
      Summary:
      For VerifyBackup(), backup files can be spread across "shared/",
      "shared_checksum/", and "private/" subdirectories, so we have to
      bulk get all three.
      
      For CreateNewBackup(), we make two separate bulk calls: one for the
      data files and one for WAL files.
      
      There is also a new helper function, ExtendPathnameToSizeBytes(),
      that translates the file attributes vector to a map. I decided to leave
      GetChildrenFileAttributes()'s (from D53781) return type as vector to
      keep it consistent with GetChildren().
      
      Depends on D53781.
      
      Test Plan:
      verified relevant unit tests
      
        $ ./backupable_db_test
      
      Reviewers: IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D53919
      f8e90e87
    • S
      Change BlockBasedTableOptions.format_version default to 2 · 12fd9b18
      sdong 提交于
      Summary: BlockBasedTableOptions.format_version = 2 uses better encoding format. Now it's the time to make it default.
      
      Test Plan: Run all existing tests.
      
      Reviewers: igor, yhchiang, anthony, kradhakrishnan, andrewkr, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: MarkCallaghan, leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54879
      12fd9b18
    • S
      Update current version to 4.6 · 4572a2d8
      sdong 提交于
      Summary: 4.5 is already cut, we can now increase the version in 4.6.
      
      Test Plan: Not needed.
      
      Reviewers: anthony, kradhakrishnan, andrewkr, yhchiang, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54963
      4572a2d8
    • S
      Rename iterator property "rocksdb.iterator.is.key.pinned" => "rocksdb.iterator.is-key-pinned" · 74b66070
      sdong 提交于
      Summary: Rename iterator property to folow property naming convention.
      
      Test Plan: Run all existing tests.
      
      Reviewers: andrewkr, anthony, yhchiang, kradhakrishnan, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54957
      74b66070
    • I
      Fix DB::AddFile() issue when PurgeObsoleteFiles() is called · 6743135e
      Islam AbdelRahman 提交于
      Summary:
      In some situations the DB will scan all existing files in the DB path and delete the ones that are Obsolete.
      If this happen during adding an external sst file. this could cause the file to be deleted while we are adding it.
      This diff fix this issue
      
      Test Plan:
      unit test to reproduce the bug
      existing unit tests
      
      Reviewers: sdong, yhchiang, andrewkr
      
      Reviewed By: andrewkr
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D54627
      6743135e
    • S
      Add DB Property "rocksdb.current_version_number" · 432f3adf
      sdong 提交于
      Summary: Add a DB Property "rocksdb.current_version_number" for users to monitor version changes and stale iterators.
      
      Test Plan: Add a unit test.
      
      Reviewers: andrewkr, yhchiang, kradhakrishnan, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D54927
      432f3adf
  8. 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
  9. 29 2月, 2016 1 次提交
  10. 27 2月, 2016 2 次提交
  11. 26 2月, 2016 1 次提交
  12. 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