1. 22 1月, 2022 1 次提交
  2. 13 1月, 2022 1 次提交
    • Y
      Remove using namespace (#9369) · 0376869f
      Yanqin Jin 提交于
      Summary:
      As title.
      This is part of an fb-internal task.
      First, remove all `using namespace` statements if applicable.
      Next, utilize multiple build platforms and see if anything is broken.
      Should anything become broken, fix the compilation errors with as little extra change as possible.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/9369
      
      Test Plan:
      internal build and make check
      make clean && make static_lib && cd examples && make all
      
      Reviewed By: pdillinger
      
      Differential Revision: D33517260
      
      Pulled By: riversand963
      
      fbshipit-source-id: 3fc4ce6402a073421dfd9a9b2d1c79441dca7a40
      0376869f
  3. 05 1月, 2022 1 次提交
  4. 08 9月, 2021 1 次提交
  5. 31 8月, 2021 1 次提交
    • P
      Built-in support for generating unique IDs, bug fix (#8708) · 13ded694
      Peter Dillinger 提交于
      Summary:
      Env::GenerateUniqueId() works fine on Windows and on POSIX
      where /proc/sys/kernel/random/uuid exists. Our other implementation is
      flawed and easily produces collision in a new multi-threaded test.
      As we rely more heavily on DB session ID uniqueness, this becomes a
      serious issue.
      
      This change combines several individually suitable entropy sources
      for reliable generation of random unique IDs, with goal of uniqueness
      and portability, not cryptographic strength nor maximum speed.
      
      Specifically:
      * Moves code for getting UUIDs from the OS to port::GenerateRfcUuid
      rather than in Env implementation details. Callers are now told whether
      the operation fails or succeeds.
      * Adds an internal API GenerateRawUniqueId for generating high-quality
      128-bit unique identifiers, by combining entropy from three "tracks":
        * Lots of info from default Env like time, process id, and hostname.
        * std::random_device
        * port::GenerateRfcUuid (when working)
      * Built-in implementations of Env::GenerateUniqueId() will now always
      produce an RFC 4122 UUID string, either from platform-specific API or
      by converting the output of GenerateRawUniqueId.
      
      DB session IDs now use GenerateRawUniqueId while DB IDs (not as
      critical) try to use port::GenerateRfcUuid but fall back on
      GenerateRawUniqueId with conversion to an RFC 4122 UUID.
      
      GenerateRawUniqueId is declared and defined under env/ rather than util/
      or even port/ because of the Env dependency.
      
      Likely follow-up: enhance GenerateRawUniqueId to be faster after the
      first call and to guarantee uniqueness within the lifetime of a single
      process (imparting the same property onto DB session IDs).
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8708
      
      Test Plan:
      A new mini-stress test in env_test checks the various public
      and internal APIs for uniqueness, including each track of
      GenerateRawUniqueId individually. We can't hope to verify anywhere close
      to 128 bits of entropy, but it can at least detect flaws as bad as the
      old code. Serial execution of the new tests takes about 350 ms on
      my machine.
      
      Reviewed By: zhichao-cao, mrambacher
      
      Differential Revision: D30563780
      
      Pulled By: pdillinger
      
      fbshipit-source-id: de4c9ff4b2f581cf784fcedb5f39f16e5185c364
      13ded694
  6. 16 8月, 2021 1 次提交
  7. 29 6月, 2021 1 次提交
  8. 27 4月, 2021 1 次提交
    • M
      Fix cast-function-type warning (#8230) · c2c7d5e9
      Mr-Leshiy 提交于
      Summary:
      Fixing cast-function-type which is appears during the following build:
      ```bash
      cmake ..  -DFAIL_ON_WARNINGS=ON -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_SYSTEM_NAME=Windows
      make rocksdb
      ```
      Here is the log:
      ```
      /home/leshiy/Work/rocksdb/port/win/env_win.cc: In constructor ‘rocksdb::port::WinClock::WinClock()’:
      /home/leshiy/Work/rocksdb/port/win/env_win.cc:92:9: error: cast between incompatible function types from ‘FARPROC’ {aka ‘long long int (*)()’} to ‘rocksdb::port::WinClock::FnGetSystemTimePreciseAsFileTime’ {aka ‘void (*)(_FILETIME*)’} [-Werror=cast-function-type]
         92 |         (FnGetSystemTimePreciseAsFileTime)GetProcAddress(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         93 |             module, "GetSystemTimePreciseAsFileTime");
            |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1plus: all warnings being treated as errors
      make[2]: *** [CMakeFiles/rocksdb.dir/build.make:4337: CMakeFiles/rocksdb.dir/port/win/env_win.cc.obj] Error 1
      make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/rocksdb.dir/all] Error 2
      make: *** [Makefile:91: all] Error 2
      ```
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8230
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D28000215
      
      Pulled By: mrambacher
      
      fbshipit-source-id: 874782cf48f70470e3fbd9097585bf42e810ca61
      c2c7d5e9
  9. 17 4月, 2021 1 次提交
  10. 25 3月, 2021 1 次提交
  11. 15 3月, 2021 1 次提交
    • M
      Use SystemClock* instead of std::shared_ptr<SystemClock> in lower level routines (#8033) · 3dff28cf
      mrambacher 提交于
      Summary:
      For performance purposes, the lower level routines were changed to use a SystemClock* instead of a std::shared_ptr<SystemClock>.  The shared ptr has some performance degradation on certain hardware classes.
      
      For most of the system, there is no risk of the pointer being deleted/invalid because the shared_ptr will be stored elsewhere.  For example, the ImmutableDBOptions stores the Env which has a std::shared_ptr<SystemClock> in it.  The SystemClock* within the ImmutableDBOptions is essentially a "short cut" to gain access to this constant resource.
      
      There were a few classes (PeriodicWorkScheduler?) where the "short cut" property did not hold.  In those cases, the shared pointer was preserved.
      
      Using db_bench readrandom perf_level=3 on my EC2 box, this change performed as well or better than 6.17:
      
      6.17: readrandom   :      28.046 micros/op 854902 ops/sec;   61.3 MB/s (355999 of 355999 found)
      6.18: readrandom   :      32.615 micros/op 735306 ops/sec;   52.7 MB/s (290999 of 290999 found)
      PR: readrandom   :      27.500 micros/op 871909 ops/sec;   62.5 MB/s (367999 of 367999 found)
      
      (Note that the times for 6.18 are prior to revert of the SystemClock).
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8033
      
      Reviewed By: pdillinger
      
      Differential Revision: D27014563
      
      Pulled By: mrambacher
      
      fbshipit-source-id: ad0459eba03182e454391b5926bf5cdd45657b67
      3dff28cf
  12. 29 1月, 2021 1 次提交
    • M
      Remove Legacy and Custom FileWrapper classes from header files (#7851) · 4a09d632
      mrambacher 提交于
      Summary:
      Removed the uses of the Legacy FileWrapper classes from the source code.  The wrappers were creating an additional layer of indirection/wrapping, as the Env already has a FileSystem.
      
      Moved the Custom FileWrapper classes into the CustomEnv, as these classes are really for the private use the the CustomEnv class.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7851
      
      Reviewed By: anand1976
      
      Differential Revision: D26114816
      
      Pulled By: mrambacher
      
      fbshipit-source-id: db32840e58d969d3a0fa6c25aaf13d6dcdc74150
      4a09d632
  13. 26 1月, 2021 1 次提交
    • M
      Add a SystemClock class to capture the time functions of an Env (#7858) · 12f11373
      mrambacher 提交于
      Summary:
      Introduces and uses a SystemClock class to RocksDB.  This class contains the time-related functions of an Env and these functions can be redirected from the Env to the SystemClock.
      
      Many of the places that used an Env (Timer, PerfStepTimer, RepeatableThread, RateLimiter, WriteController) for time-related functions have been changed to use SystemClock instead.  There are likely more places that can be changed, but this is a start to show what can/should be done.  Over time it would be nice to migrate most (if not all) of the uses of the time functions from the Env to the SystemClock.
      
      There are several Env classes that implement these functions.  Most of these have not been converted yet to SystemClock implementations; that will come in a subsequent PR.  It would be good to unify many of the Mock Timer implementations, so that they behave similarly and be tested similarly (some override Sleep, some use a MockSleep, etc).
      
      Additionally, this change will allow new methods to be introduced to the SystemClock (like https://github.com/facebook/rocksdb/issues/7101 WaitFor) in a consistent manner across a smaller number of classes.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7858
      
      Reviewed By: pdillinger
      
      Differential Revision: D26006406
      
      Pulled By: mrambacher
      
      fbshipit-source-id: ed10a8abbdab7ff2e23d69d85bd25b3e7e899e90
      12f11373
  14. 10 1月, 2021 1 次提交
    • A
      Improvements to Env::GetChildren (#7819) · 4926b337
      Adam Retter 提交于
      Summary:
      The main improvement here is to not include `.` or `..` in the results of `Env::GetChildren`. The occurrence of `.` or `..`; it is non-portable, dependent on the Operating System and the File System. See: https://www.gnu.org/software/libc/manual/html_node/Reading_002fClosing-Directory.html
      
      There were lots of duplicate checks spread through the RocksDB codebase previously to skip `.` and `..`. This new removes the need for those at the source.
      
      Also some minor fixes to `Env::GetChildren`:
      * Improve error handling in POSIX implementation
      * Remove unnecessary array allocation on Windows
      * Fix struct name for Windows Non-UTF-8 API
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7819
      
      Reviewed By: ajkr
      
      Differential Revision: D25837394
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: 1e137e7218d38b450af9c083f73d5357abcbba2e
      4926b337
  15. 07 1月, 2021 1 次提交
    • M
      Create a CustomEnv class; Add WinFileSystem; Make LegacyFileSystemWrapper private (#7703) · e628f59e
      mrambacher 提交于
      Summary:
      This PR does the following:
      -> Creates a WinFileSystem class.  This class is the Windows equivalent of the PosixFileSystem and will be used on Windows systems.
      -> Introduces a CustomEnv class.  A CustomEnv is an Env that takes a FileSystem as constructor argument.  I believe there will only ever be two implementations of this class (PosixEnv and WinEnv).  There is still a CustomEnvWrapper class that takes an Env and a FileSystem and wraps the Env calls with the input Env but uses the FileSystem for the FileSystem calls
      -> Eliminates the public uses of the LegacyFileSystemWrapper.
      
      With this change in place, there are effectively the following patterns of Env:
      - "Base Env classes" (PosixEnv, WinEnv).  These classes implement the core Env functions (e.g. Threads) and have a hard-coded input FileSystem.  These classes inherit from CompositeEnv, implement the core Env functions (threads) and delegate the FileSystem-like calls to the input file system.
      - Wrapped Composite Env classes (MemEnv).  These classes take in an Env and a FileSystem.  The core env functions are re-directed to the wrapped env.  The file system calls are redirected to the input file system
      - Legacy Wrapped Env classes.  These classes take in an Env input (but no FileSystem).  The core env functions are re-directed to the wrapped env.  A "Legacy File System" is created using this env and the file system calls directed to the env itself.
      
      With these changes in place, the PosixEnv becomes a singleton -- there is only ever one created.  Any other use of the PosixEnv is via another wrapped env.  This cleans up some of the issues with the env construction and destruction.
      
      Additionally, there were places in the code that required had an Env when they required a FileSystem.  Many of these places would wrap the Env with a LegacyFileSystemWrapper instead of using the env->GetFileSystem().  These places were changed, thereby removing layers of additional redirection (LegacyFileSystem --> Env --> Env::FileSystem).
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7703
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D25762190
      
      Pulled By: anand1976
      
      fbshipit-source-id: 1a088e97fc916f28ac69c149cd1dcad0ab31704b
      e628f59e
  16. 24 9月, 2020 1 次提交
    • X
      build: make it compile with @mode/win (#7406) · 249f2b59
      Xavier Deguillard 提交于
      Summary:
      While rocksdb can compile on both macOS and Linux with Buck, it couldn't be
      compiled on Windows. The only way to compile it on Windows was with the CMake
      build.
      
      To keep the multi-platform complexity low, I've simply included all the Windows
      bits in the TARGETS file, and added large #if blocks when not on Windows, the
      same was done on the posix specific files.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7406
      
      Test Plan:
      On my devserver:
        buck test //rocksdb/...
      On Windows:
        buck build mode/win //rocksdb/src:rocksdb_lib
      
      Reviewed By: pdillinger
      
      Differential Revision: D23874358
      
      Pulled By: xavierd
      
      fbshipit-source-id: 8768b5d16d7e8f44b5ca1e2483881ca4b24bffbe
      249f2b59
  17. 04 6月, 2020 1 次提交
    • L
      Posix threads (#6865) · 172adce7
      Lucian Petrut 提交于
      Summary:
      Rocksdb is using the c++11 std::threads feature. The issue is that
      MINGW only supports it when using Posix threads.
      
      This change will allow rocksdb::port::WindowsThread to be replaced
      with std::thread, which in turn will allow Rocksdb to be cross
      compiled using MINGW.
      
      At the same time, we'll have to use GetCurrentProcessId instead of _getpid.
      Signed-off-by: NLucian Petrut <lpetrut@cloudbasesolutions.com>
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/6865
      
      Reviewed By: cheng-chang
      
      Differential Revision: D21864285
      
      Pulled By: ajkr
      
      fbshipit-source-id: 0982eed313e7d34d351b1364c1ccc722da473205
      172adce7
  18. 18 4月, 2020 1 次提交
    • Y
      Add IsDirectory() to Env and FS (#6711) · 243852ec
      Yanqin Jin 提交于
      Summary:
      IsDirectory() is a common API to check whether a path is a regular file or
      directory.
      POSIX: call stat() and use S_ISDIR(st_mode)
      Windows: PathIsDirectoryA() and PathIsDirectoryW()
      HDFS: FileSystem.IsDirectory()
      Java: File.IsDirectory()
      ...
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/6711
      
      Test Plan: make check
      
      Reviewed By: anand1976
      
      Differential Revision: D21053520
      
      Pulled By: riversand963
      
      fbshipit-source-id: 680aadfd8ce982b63689190cf31b3145d5a89e27
      243852ec
  19. 21 3月, 2020 1 次提交
    • C
      Support direct IO in RandomAccessFileReader::MultiRead (#6446) · 4fc21664
      Cheng Chang 提交于
      Summary:
      By supporting direct IO in RandomAccessFileReader::MultiRead, the benefits of parallel IO (IO uring) and direct IO can be combined.
      
      In direct IO mode, read requests are aligned and merged together before being issued to RandomAccessFile::MultiRead, so blocks in the original requests might share the same underlying buffer, the shared buffers are returned in `aligned_bufs`, which is a new parameter of the `MultiRead` API.
      
      For example, suppose alignment requirement for direct IO is 4KB, one request is (offset: 1KB, len: 1KB), another request is (offset: 3KB, len: 1KB), then since they all belong to page (offset: 0, len: 4KB), `MultiRead` only reads the page with direct IO into a buffer on heap, and returns 2 Slices referencing regions in that same buffer. See `random_access_file_reader_test.cc` for more examples.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/6446
      
      Test Plan: Added a new test `random_access_file_reader_test.cc`.
      
      Reviewed By: anand1976
      
      Differential Revision: D20097518
      
      Pulled By: cheng-chang
      
      fbshipit-source-id: ca48a8faf9c3af146465c102ef6b266a363e78d1
      4fc21664
  20. 21 2月, 2020 1 次提交
    • S
      Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) · fdf882de
      sdong 提交于
      Summary:
      When dynamically linking two binaries together, different builds of RocksDB from two sources might cause errors. To provide a tool for user to solve the problem, the RocksDB namespace is changed to a flag which can be overridden in build time.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/6433
      
      Test Plan: Build release, all and jtest. Try to build with ROCKSDB_NAMESPACE with another flag.
      
      Differential Revision: D19977691
      
      fbshipit-source-id: aa7f2d0972e1c31d75339ac48478f34f6cfcfb3e
      fdf882de
  21. 08 1月, 2020 1 次提交
  22. 21 9月, 2019 1 次提交
  23. 16 7月, 2019 1 次提交
  24. 05 4月, 2019 1 次提交
  25. 28 3月, 2019 1 次提交
  26. 22 3月, 2019 1 次提交
    • B
      fix NowNanos overflow (#5062) · 88d85b68
      Burton Li 提交于
      Summary:
      The original implementation of WinEnvIO::NowNanos() has a constant data overflow by:
      li.QuadPart *= std::nano::den;
      As a result, the api provides a incorrect result.
      e.g.:
      li.QuadPart=13477844301545
      std::nano::den=1e9
      
      The fix uses pre-computed nano_seconds_per_period_ to present the nano seconds per performance counter period, in the case if nano::den is divisible by perf_counter_frequency_. Otherwise it falls back to use high_resolution_clock.
      siying ajkr
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5062
      
      Differential Revision: D14426842
      
      Pulled By: anand1976
      
      fbshipit-source-id: 127f1daf423dd4b30edd0dcf8ea0466f468bec12
      88d85b68
  27. 12 10月, 2018 1 次提交
    • W
      Add compile time option to work with utf8 filename strings (#4469) · 5d809ece
      Wilfried Goesgens 提交于
      Summary:
      The default behaviour of rocksdb is to use the `*A(` windows API functions.
      These accept filenames in the currently configured system encoding,
      be it Latin 1, utf8 or whatever.
      If the Application intends to completely work with utf8 strings internally,
      converting these to that codepage properly isn't even always possible.
      Thus this patch adds a switch to use the `*W(` functions, which accept
      UTF-16 filenames, and uses C++11 features to translate the
      UTF8 containing std::string to an UTF16 containing std::wstring.
      
      This feature is a compile time options, that can be enabled by setting `WITH_WINDOWS_UTF8_FILENAMES` to true.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4469
      
      Differential Revision: D10356011
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 27b6ae9171f209085894cdf80069e8a896642044
      5d809ece
  28. 15 9月, 2018 1 次提交
  29. 06 9月, 2018 1 次提交
  30. 24 8月, 2018 1 次提交
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 03 2月, 2018 1 次提交
  37. 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
  38. 01 11月, 2017 1 次提交
  39. 24 10月, 2017 1 次提交
  40. 09 8月, 2017 1 次提交