rocksdb/test_util
Cheng Chang 91b7553293 Enable IO Uring in MultiGet in direct IO mode (#6815)
Summary:
Currently, in direct IO mode, `MultiGet` retrieves the data blocks one by one instead of in parallel, see `BlockBasedTable::RetrieveMultipleBlocks`.

Since direct IO is supported in `RandomAccessFileReader::MultiRead` in https://github.com/facebook/rocksdb/pull/6446, this PR applies `MultiRead` to `MultiGet` so that the data blocks can be retrieved in parallel.

Also, in direct IO mode and when data blocks are compressed and need to uncompressed, this PR only allocates one continuous aligned buffer to hold the data blocks, and then directly uncompress the blocks to insert into block cache, there is no longer intermediate copies to scratch buffers.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6815

Test Plan:
1. added a new unit test `BlockBasedTableReaderTest::MultiGet`.
2. existing unit tests and stress tests  contain tests against `MultiGet` in direct IO mode.

Reviewed By: anand1976

Differential Revision: D21426347

Pulled By: cheng-chang

fbshipit-source-id: b8446ae0e74152444ef9111e97f8e402ac31b24f
2020-05-14 23:26:26 -07:00
..
fault_injection_test_env.cc Suppress file deletion error message in FaultInjectionTestEnv (#6696) 2020-04-14 10:55:10 -07:00
fault_injection_test_env.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
fault_injection_test_fs.cc Fix a couple of bugs in FaultInjectionTestFS (#6777) 2020-04-29 19:28:29 -07:00
fault_injection_test_fs.h Fix a couple of bugs in FaultInjectionTestFS (#6777) 2020-04-29 19:28:29 -07:00
mock_time_env.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
sync_point.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
sync_point.h Fix some typos in code comments (#6733) 2020-04-23 12:28:49 -07:00
sync_point_impl.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
sync_point_impl.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
testharness.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
testharness.h Silence false alarms in db_stress fault injection (#6741) 2020-04-24 13:06:12 -07:00
testutil.cc Enable IO Uring in MultiGet in direct IO mode (#6815) 2020-05-14 23:26:26 -07:00
testutil.h prototype status check enforcement (#6798) 2020-05-08 12:40:43 -07:00
transaction_test_util.cc C++20 compatibility (#6697) 2020-04-20 13:24:25 -07:00
transaction_test_util.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00