rocksdb/options
Zhichao Cao a10f12eda1 Auto resume the DB from Retryable IO Error (#6765)
Summary:
In current codebase, in write path, if Retryable IO Error happens, SetBGError is called. The retryable IO Error is converted to hard error and DB is in read only mode. User or application needs to resume it. In this PR, if Retryable IO Error happens in one DB, SetBGError will create a new thread to call Resume (auto resume). otpions.max_bgerror_resume_count controls if auto resume is enabled or not (if max_bgerror_resume_count<=0, auto resume will not be enabled). options.bgerror_resume_retry_interval controls the time interval to call Resume again if the previous resume fails due to the Retryable IO Error. If non-retryable error happens during resume, auto resume will terminate.

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

Test Plan: Added the unit test cases in error_handler_fs_test and pass make asan_check

Reviewed By: anand1976

Differential Revision: D21916789

Pulled By: zhichao-cao

fbshipit-source-id: acb8b5e5dc3167adfa9425a5b7fc104f6b95cb0b
2020-07-15 11:03:58 -07:00
..
cf_options.cc make L0 index/filter pinned memory usage predictable (#6911) 2020-06-09 16:51:23 -07:00
cf_options.h make L0 index/filter pinned memory usage predictable (#6911) 2020-06-09 16:51:23 -07:00
db_options.cc Auto resume the DB from Retryable IO Error (#6765) 2020-07-15 11:03:58 -07:00
db_options.h Auto resume the DB from Retryable IO Error (#6765) 2020-07-15 11:03:58 -07:00
options_helper.cc Auto resume the DB from Retryable IO Error (#6765) 2020-07-15 11:03:58 -07:00
options_helper.h Add Struct Type to OptionsTypeInfo (#6425) 2020-05-21 10:58:39 -07:00
options_parser.cc Add Struct Type to OptionsTypeInfo (#6425) 2020-05-21 10:58:39 -07:00
options_parser.h Add Functions to OptionTypeInfo (#6422) 2020-04-28 18:04:26 -07:00
options_settable_test.cc Auto resume the DB from Retryable IO Error (#6765) 2020-07-15 11:03:58 -07:00
options_test.cc Add OptionTypeInfo::Vector to parse/serialize vectors (#6424) 2020-06-03 12:23:07 -07:00
options_type.h Add OptionTypeInfo::Vector to parse/serialize vectors (#6424) 2020-06-03 12:23:07 -07:00
options.cc Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00