1. 06 9月, 2018 1 次提交
  2. 24 8月, 2018 1 次提交
  3. 10 8月, 2018 1 次提交
    • D
      Implement Env::NumFileLinks (#4221) · ab22cf34
      Dmitri Smirnov 提交于
      Summary:
      Although delete scheduler implementation allows for the interface not to be supported, the delete_scheduler_test does not allow for that.
      Address compiler warnings
      Make sst_dump_test use test directory structure as the current execution directory may not be writiable.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4221
      
      Differential Revision: D9210152
      
      Pulled By: siying
      
      fbshipit-source-id: 381a74511e969ecb8089d5c4b4df87dc30c8df63
      ab22cf34
  4. 13 6月, 2018 1 次提交
    • S
      Fix a crash in WinEnvIO::GetSectorSize (#3975) · 9c7da963
      shpala 提交于
      Summary:
      Fix a crash in `WinEnvIO::GetSectorSize` that happens on old Windows systems (e.g Windows 7).
      On old Windows systems that don't support querying StorageAccessAlignmentProperty using IOCTL_STORAGE_QUERY_PROPERTY, the flow calls a different DeviceIoControl with nullptr as lpBytesReturned.
      When the code reaches this point, we get an access violation.
      Closes https://github.com/facebook/rocksdb/pull/3975
      
      Differential Revision: D8385186
      
      Pulled By: ajkr
      
      fbshipit-source-id: fae4c9b4b0a52c8a10182e1b35bcaa30dc393bbb
      9c7da963
  5. 25 5月, 2018 1 次提交
    • D
      Catchup with posix features · 3db8504c
      Dmitri Smirnov 提交于
      Summary:
      Catch up with Posix features
        NewWritableRWFile must fail when file does not exists
        Implement Env::Truncate()
        Adjust Env options optimization functions
        Implement MemoryMappedBuffer on Windows.
      Closes https://github.com/facebook/rocksdb/pull/3857
      
      Differential Revision: D8053610
      
      Pulled By: ajkr
      
      fbshipit-source-id: ccd0d46c29648a9f6f496873bc1c9d6c5547487e
      3db8504c
  6. 04 5月, 2018 1 次提交
    • D
      Better destroydb · 934f96de
      Dmitri Smirnov 提交于
      Summary:
      Delete archive directory before WAL folder
        since archive may be contained as a subfolder.
        Also improve loop readability.
      Closes https://github.com/facebook/rocksdb/pull/3797
      
      Differential Revision: D7866378
      
      Pulled By: riversand963
      
      fbshipit-source-id: 0c45d97677ce6fbefa3f8d602ef5e2a2a925e6f5
      934f96de
  7. 07 3月, 2018 1 次提交
    • D
      Windows cumulative patch · c364eb42
      Dmitri Smirnov 提交于
      Summary:
      This patch addressed several issues.
        Portability including db_test std::thread -> port::Thread Cc: @
        and %z to ROCKSDB portable macro. Cc: maysamyabandeh
      
        Implement Env::AreFilesSame
      
        Make the implementation of file unique number more robust
      
        Get rid of C-runtime and go directly to Windows API when dealing
        with file primitives.
      
        Implement GetSectorSize() and aling unbuffered read on the value if
        available.
      
        Adjust Windows Logger for the new interface, implement CloseImpl() Cc: anand1976
      
        Fix test running script issue where $status var was of incorrect scope
        so the failures were swallowed and not reported.
      
        DestroyDB() creates a logger and opens a LOG file in the directory
        being cleaned up. This holds a lock on the folder and the cleanup is
        prevented. This fails one of the checkpoin tests. We observe the same in production.
        We close the log file in this change.
      
       Fix DBTest2.ReadAmpBitmapLiveInCacheAfterDBClose failure where the test
       attempts to open a directory with NewRandomAccessFile which does not
       work on Windows.
        Fix DBTest.SoftLimit as it is dependent on thread timing. CC: yiwu-arbug
      Closes https://github.com/facebook/rocksdb/pull/3552
      
      Differential Revision: D7156304
      
      Pulled By: siying
      
      fbshipit-source-id: 43db0a757f1dfceffeb2b7988043156639173f5b
      c364eb42
  8. 03 2月, 2018 1 次提交
  9. 22 12月, 2017 1 次提交
    • B
      Disable onboard cache for compaction output · b5c99cc9
      burtonli 提交于
      Summary:
      FILE_FLAG_WRITE_THROUGH is for disabling device on-board cache in windows API, which should be disabled if user doesn't need system cache.
      There was a perf issue related with this, we found during memtable flush, the high percentile latency jumps significantly. During profiling, we found those high latency (P99.9) read requests got queue-jumped by write requests from memtable flush and takes 80ms or even more time to wait, even when SSD overall IO throughput is relatively low.
      
      After enabling FILE_FLAG_WRITE_THROUGH, we rerun the test found high percentile latency drops a lot without observable impact on writes.
      
      Scenario 1: 40MB/s + 40MB/s  R/W compaction throughput
      
       Original | FILE_FLAG_WRITE_THROUGH | Percentage reduction
      ---------------------------------------------------------------
      P99.9 | 56.897 ms | 35.593 ms | -37.4%
      P99 | 3.905 ms | 3.896 ms | -2.8%
      
      Scenario 2:  14MB/s + 14MB/s R/W compaction throughput, cohosted with 100+ other rocksdb instances have manually triggered memtable flush operations (memtable is tiny), creating a lot of randomized the small file writes operations during test.
      
      Original | FILE_FLAG_WRITE_THROUGH | Percentage reduction
      ---------------------------------------------------------------
      P99.9 | 86.227   ms | 50.436 ms | -41.5%
      P99 | 8.415   ms | 3.356 ms | -60.1%
      Closes https://github.com/facebook/rocksdb/pull/3225
      
      Differential Revision: D6624174
      
      Pulled By: miasantreble
      
      fbshipit-source-id: 321b86aee9d74470840c70e5d0d4fa9880660a91
      b5c99cc9
  10. 01 11月, 2017 1 次提交
  11. 24 10月, 2017 1 次提交
  12. 09 8月, 2017 1 次提交
  13. 16 7月, 2017 1 次提交
  14. 21 6月, 2017 1 次提交
  15. 13 6月, 2017 1 次提交
  16. 24 5月, 2017 1 次提交
    • A
      New API for background work in single thread pool · 6cc9aef1
      Andrew Kryczka 提交于
      Summary:
      Previously users could set `max_background_flushes=0` to force rocksdb to use a single thread pool for both background flushes and compactions. That'll no longer be possible since I'm going to deprecate `max_background_flushes` and `max_background_compactions` in favor of a single option. This diff introduces a new way to force a single thread pool: when high-pri pool has zero threads, all background jobs will be submitted to low-pri pool.
      
      Note the majority of the code change is adding `Env::GetBackgroundThreads()`, which is necessary to check whether the user has provided a zero-sized thread pool.
      Closes https://github.com/facebook/rocksdb/pull/2204
      
      Differential Revision: D4936256
      
      Pulled By: ajkr
      
      fbshipit-source-id: 929a07a0c0705f7766f5339cd013ff74e90d6e01
      6cc9aef1
  17. 18 5月, 2017 1 次提交
  18. 06 5月, 2017 1 次提交
    • T
      travis: add Windows cross-compilation · fdaefa03
      Tamir Duberstein 提交于
      Summary:
      - downcase includes for case-sensitive filesystems
      - give targets the same name (librocksdb) on all platforms
      
      With this patch it is possible to cross-compile RocksDB for Windows
      from a Linux host using mingw.
      
      cc yuslepukhin orgads
      Closes https://github.com/facebook/rocksdb/pull/2107
      
      Differential Revision: D4849784
      
      Pulled By: siying
      
      fbshipit-source-id: ad26ed6b4d393851aa6551e6aa4201faba82ef60
      fdaefa03
  19. 28 4月, 2017 1 次提交
  20. 06 4月, 2017 1 次提交
  21. 31 3月, 2017 1 次提交
  22. 07 2月, 2017 1 次提交
    • D
      Windows thread · 0a4cdde5
      Dmitri Smirnov 提交于
      Summary:
      introduce new methods into a public threadpool interface,
      - allow submission of std::functions as they allow greater flexibility.
      - add Joining methods to the implementation to join scheduled and submitted jobs with
        an option to cancel jobs that did not start executing.
      - Remove ugly `#ifdefs` between pthread and std implementation, make it uniform.
      - introduce pimpl for a drop in replacement of the implementation
      - Introduce rocksdb::port::Thread typedef which is a replacement for std::thread.  On Posix Thread defaults as before std::thread.
      - Implement WindowsThread that allocates memory in a more controllable manner than windows std::thread with a replaceable implementation.
      - should be no functionality changes.
      Closes https://github.com/facebook/rocksdb/pull/1823
      
      Differential Revision: D4492902
      
      Pulled By: siying
      
      fbshipit-source-id: c74cb11
      0a4cdde5
  23. 16 1月, 2017 1 次提交
  24. 10 1月, 2017 1 次提交
    • D
      Fix Windows environment issues · 3c233ca4
      Dmitri Smirnov 提交于
      Summary:
      Enable directIO on WritableFileImpl::Append
           with offset being current length of the file.
           Enable UniqueID tests on Windows, disable others but
           leeting them to compile. Unique tests are valuable to
           detect failures on different filesystems and upcoming
           ReFS.
           Clear output in WinEnv Getchildren.This is different from
           previous strategy, do not touch output on failure.
           Make sure DBTest.OpenWhenOpen works with windows error message
      Closes https://github.com/facebook/rocksdb/pull/1746
      
      Differential Revision: D4385681
      
      Pulled By: IslamAbdelRahman
      
      fbshipit-source-id: c07b702
      3c233ca4
  25. 23 12月, 2016 1 次提交
    • A
      direct io write support · 972f96b3
      Aaron Gao 提交于
      Summary:
      rocksdb direct io support
      
      ```
      [gzh@dev11575.prn2 ~/rocksdb] ./db_bench -benchmarks=fillseq --num=1000000
      Initializing RocksDB Options from the specified file
      Initializing RocksDB Options from command-line flags
      RocksDB:    version 5.0
      Date:       Wed Nov 23 13:17:43 2016
      CPU:        40 * Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
      CPUCache:   25600 KB
      Keys:       16 bytes each
      Values:     100 bytes each (50 bytes after compression)
      Entries:    1000000
      Prefix:    0 bytes
      Keys per prefix:    0
      RawSize:    110.6 MB (estimated)
      FileSize:   62.9 MB (estimated)
      Write rate: 0 bytes/second
      Compression: Snappy
      Memtablerep: skip_list
      Perf Level: 1
      WARNING: Assertions are enabled; benchmarks unnecessarily slow
      ------------------------------------------------
      Initializing RocksDB Options from the specified file
      Initializing RocksDB Options from command-line flags
      DB path: [/tmp/rocksdbtest-112628/dbbench]
      fillseq      :       4.393 micros/op 227639 ops/sec;   25.2 MB/s
      
      [gzh@dev11575.prn2 ~/roc
      Closes https://github.com/facebook/rocksdb/pull/1564
      
      Differential Revision: D4241093
      
      Pulled By: lightmark
      
      fbshipit-source-id: 98c29e3
      972f96b3
  26. 13 12月, 2016 1 次提交
    • A
      Return finer-granularity status from Env::GetChildren* · f0c509e2
      Andrew Kryczka 提交于
      Summary:
      It'd be nice to use the error status type to distinguish
      between user error and system error. For example, GetChildren can fail
      listing a backup directory's contents either because a bad path was provided
      (user error) or because an operation failed, e.g., a remote storage service
      call failed (system error). In the former case, we want to continue and treat
      the backup directory as empty; in the latter case, we want to immediately
      propagate the error to the caller.
      
      This diff uses NotFound to indicate user error and IOError to indicate
      system error. Previously IOError indicated both.
      Closes https://github.com/facebook/rocksdb/pull/1644
      
      Differential Revision: D4312157
      
      Pulled By: ajkr
      
      fbshipit-source-id: 51b4f24
      f0c509e2
  27. 14 10月, 2016 1 次提交
  28. 20 5月, 2016 1 次提交
    • D
      Split WinEnv into separate classes. (#1128) · 26adaad4
      Dmitri Smirnov 提交于
      For ease of reuse and customization as a library
        without wrapping.
        WinEnvThreads is a class for replacement.
        WintEnvIO is a class for reuse and behavior override.
        Added private virtual functions for custom override
        of fallocate pread for io classes.
      26adaad4
  29. 17 5月, 2016 1 次提交
  30. 13 5月, 2016 1 次提交
  31. 30 4月, 2016 1 次提交
  32. 29 4月, 2016 1 次提交
  33. 28 4月, 2016 1 次提交
  34. 23 4月, 2016 1 次提交
  35. 20 2月, 2016 1 次提交
  36. 18 2月, 2016 1 次提交
  37. 10 2月, 2016 2 次提交
    • B
      Updated all copyright headers to the new format. · 21e95811
      Baraa Hamodi 提交于
      21e95811
    • A
      Env function for bulk metadata retrieval · 59b3ee65
      Andrew Kryczka 提交于
      Summary:
      Added this new function, which returns filename, size, and modified
      timestamp for each file in the provided directory. The default implementation
      retrieves the metadata sequentially using existing functions. In the next diff
      I'll make HdfsEnv override this function to use libhdfs's bulk get function.
      
      This won't work on windows due to the path separator.
      
      Test Plan:
      new unit test
      
        $ ./env_test --gtest_filter=EnvPosixTest.ConsistentChildrenMetadata
      
      Reviewers: yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: IslamAbdelRahman, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D53781
      59b3ee65
  38. 02 2月, 2016 2 次提交