Improve online_delete configuration and DB tuning:

* Document delete_batch, back_off_milliseconds, age_threshold_seconds.
* Convert those time values to chrono types.
* Fix bug that ignored age_threshold_seconds.
* Add a "recovery buffer" to the config that gives the node a chance to
  recover before aborting online delete.
* Add begin/end log messages around the SQL queries.
* Add a new configuration section: [sqlite] to allow tuning the sqlite
  database operations. Ignored on full/large history servers.
* Update documentation of [node_db] and [sqlite] in the
  rippled-example.cfg file.

Resolves #3321
This commit is contained in:
Edward Hennis
2020-05-11 16:48:34 -04:00
committed by Nik Bougalis
parent 00702f28c2
commit 4702c8b591
21 changed files with 1086 additions and 271 deletions

View File

@@ -124,6 +124,7 @@ Shard::open(Scheduler& scheduler, nudb::context& ctx)
setup.startUp = config.START_UP;
setup.standAlone = config.standalone();
setup.dataDir = dir_;
setup.useGlobalPragma = true;
acquireInfo_->SQLiteDB = std::make_unique<DatabaseCon>(
setup,
@@ -668,10 +669,14 @@ bool
Shard::initSQLite(std::lock_guard<std::recursive_mutex> const&)
{
Config const& config{app_.config()};
DatabaseCon::Setup setup;
setup.startUp = config.START_UP;
setup.standAlone = config.standalone();
setup.dataDir = dir_;
DatabaseCon::Setup const setup = [&]() {
DatabaseCon::Setup result;
result.startUp = config.START_UP;
result.standAlone = config.standalone();
result.dataDir = dir_;
result.useGlobalPragma = !backendComplete_;
return result;
}();
try
{