rocksdb/include/rocksdb
Mikhail Antonov 927f274939 Avoiding write stall caused by manual flushes (#4297)
Summary:
Basically at the moment it seems it's possible to cause write stall by calling flush (either manually vis DB::Flush(), or from Backup Engine directly calling FlushMemTable() while background flush may be already happening.

One of the ways to fix it is that in DBImpl::CompactRange() we already check for possible stall and delay flush if needed before we actually proceed to call FlushMemTable(). We can simply move this delay logic to separate method and call it from FlushMemTable.

This is draft patch, for first look; need to check tests/update SyncPoints and most certainly would need to add allow_write_stall method to FlushOptions().
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4297

Differential Revision: D9420705

Pulled By: mikhail-antonov

fbshipit-source-id: f81d206b55e1d7b39e4dc64242fdfbceeea03fcc
2018-08-29 12:12:55 -07:00
..
utilities adds missing PopSavePoint method to Transaction (#4256) 2018-08-17 11:57:30 -07:00
advanced_options.h Allow ttl to be changed dynamically (#4133) 2018-07-16 14:27:53 -07:00
c.h c-api: add some missing options 2018-08-13 18:42:30 -07:00
cache.h LRUCache midpoint insertion 2018-05-24 15:57:33 -07:00
cleanable.h Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
compaction_filter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
compaction_job_stats.h Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
comparator.h Improve point-lookup performance using a data block hash index (#4174) 2018-08-15 14:30:03 -07:00
convenience.h Delete files in multiple ranges at once 2018-01-30 13:56:39 -08:00
db_bench_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_dump_tool.h Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
db.h Trace and Replay for RocksDB (#3837) 2018-08-01 00:27:08 -07:00
env_encryption.h Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
env.h In delete scheduler, before ftruncate file for slow delete, check whether there is other hard links (#4093) 2018-07-09 15:28:12 -07:00
experimental.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filter_policy.h Comment out unused variables 2018-03-05 13:13:41 -08:00
flush_block_policy.h Change RocksDB License 2017-07-15 16:11:23 -07:00
iostats_context.h Change RocksDB License 2017-07-15 16:11:23 -07:00
iterator.h Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
ldb_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
listener.h Improve visibility into the reasons for compaction. 2018-04-11 10:58:44 -07:00
memtablerep.h Adding a method for memtable class for memtable getting flushed. (#4304) 2018-08-23 17:14:25 -07:00
merge_operator.h #3865 fix performance regression introduced by MergeOperator.ShouldMerge (#4266) 2018-08-16 10:58:05 -07:00
metadata.h Fix coverity issues in include/rocksdb 2017-11-02 17:56:48 -07:00
options.h Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
perf_context.h Improve write time breakdown stats 2018-04-23 17:58:54 -07:00
perf_level.h Change RocksDB License 2017-07-15 16:11:23 -07:00
persistent_cache.h Change RocksDB License 2017-07-15 16:11:23 -07:00
rate_limiter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
slice_transform.h use user_key and iterate_upper_bound to determine compatibility of bloom filters (#3899) 2018-06-26 15:57:26 -07:00
slice.h Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
snapshot.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_dump_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_manager.h Expose GetTotalTrashSize in SstFileManager interface (#4206) 2018-08-04 17:57:48 -07:00
sst_file_writer.h Support range deletion tombstones in IngestExternalFile SSTs (#3778) 2018-07-13 22:43:09 -07:00
statistics.h Print histogram count and sum in statistics string 2018-05-21 11:12:47 -07:00
status.h move static msgs out of Status class (#4144) 2018-07-23 15:44:16 -07:00
table_properties.h Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
table.h Add db_bench options of data block hash index (#4281) 2018-08-16 18:42:46 -07:00
thread_status.h fix ThreadStatus for bottom-pri compaction threads 2017-12-14 14:57:49 -08:00
threadpool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
trace_reader_writer.h Trace and Replay for RocksDB (#3837) 2018-08-01 00:27:08 -07:00
transaction_log.h Change RocksDB License 2017-07-15 16:11:23 -07:00
types.h types: add kEntryBlobIndex for TablePropertiesCollector (#4233) 2018-08-06 18:27:44 -07:00
universal_compaction.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version.h Increase version number to 5.16 (#4176) 2018-07-24 13:43:33 -07:00
wal_filter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
write_batch_base.h Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
write_batch.h WriteUnPrepared: Add support for recovering WriteUnprepared transactions (#4078) 2018-07-06 17:59:13 -07:00
write_buffer_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00