rocksdb/file
Yanqin Jin dd203ed604 Disallow a combination of options (#9348)
Summary:
Disallow `immutable_db_opts.use_direct_io_for_flush_and_compaction == true` and
`mutable_db_opts.writable_file_max_buffer_size == 0`, since it causes `WritableFileWriter::Append()`
to loop forever and does not make much sense in direct IO.

This combination of options itself does not make much sense: asking RocksDB to do direct IO but not allowing
RocksDB to allocate a buffer. We should detect this false combination and warn user early, no matter whether
the application is running on a platform that supports direct IO or not. In the case of platform **not** supporting
direct IO, it's ok if the user learns about this and then finds that direct IO is not supported.

One tricky thing: the constructor of `WritableFileWriter` is being used in our unit tests, and it's impossible
to return status code from constructor. Since we do not throw, I put an assertion for now. Fortunately,
the constructor is not exposed to external applications.

Closing https://github.com/facebook/rocksdb/issues/7109

Pull Request resolved: https://github.com/facebook/rocksdb/pull/9348

Test Plan: make check

Reviewed By: ajkr

Differential Revision: D33371924

Pulled By: riversand963

fbshipit-source-id: 2a3701ab541cee23bffda8a36cdf37b2d235edfa
2022-01-27 19:30:24 -08:00
..
delete_scheduler.cc
delete_scheduler.h
delete_scheduler_test.cc
file_prefetch_buffer.cc Fix bug in rocksdb internal automatic prefetching (#9234) 2021-11-30 22:53:10 -08:00
file_prefetch_buffer.h Fix bug in rocksdb internal automatic prefetching (#9234) 2021-11-30 22:53:10 -08:00
file_util.cc
file_util.h
filename.cc
filename.h
line_file_reader.cc
line_file_reader.h
prefetch_test.cc Fix bug in rocksdb internal automatic prefetching (#9234) 2021-11-30 22:53:10 -08:00
random_access_file_reader.cc
random_access_file_reader.h
random_access_file_reader_test.cc
read_write_util.cc
read_write_util.h
readahead_file_info.h
readahead_raf.cc
readahead_raf.h
sequence_file_reader.cc
sequence_file_reader.h
sst_file_manager_impl.cc Fix race condition in SstFileManagerImpl error recovery code (#9435) 2022-01-25 23:22:58 -08:00
sst_file_manager_impl.h
writable_file_writer.cc Disallow a combination of options (#9348) 2022-01-27 19:30:24 -08:00
writable_file_writer.h Disallow a combination of options (#9348) 2022-01-27 19:30:24 -08:00