1
0
Fork 0

micro improvements for rocksdb options (#8433)

This commit is contained in:
Jan 2019-03-19 12:47:57 +01:00 committed by GitHub
parent 5dbd67c8fd
commit 2c4accdf34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 2 deletions

View File

@ -1,6 +1,15 @@
devel
-----
* renamed hidden startup option `--rocksdb.delayed_write_rate` to the more
consistent `--rocksdb.delayed-write-rate`. When the old option name is
used, the arangod startup will be aborted with a descriptive error message.
* if not explicitly configured, make agency nodes start removing their unused
WAL files a few seconds after the completed server startup already. This is
because on agency nodes, unused WAL files do not need to be retained for
potential replication clients to read them.
* added option `--all-databases` to arangodump and arangorestore
When set to true, this makes arangodump dump all available databases

View File

@ -6,6 +6,12 @@ upgrading to ArangoDB 3.5, and adjust any client programs if necessary.
The following incompatible changes have been made in ArangoDB 3.5:
Startup options
---------------
The hidden startup option `--rocksdb.delayed_write_rate` was renamed to the more
consistent `--rocksdb.delayed-write-rate`. When the old option name is used, the
arangod startup will be aborted with a descriptive error message.
Web interface
-------------

View File

@ -22,6 +22,7 @@
/// @author Jan Christoph Uhde
////////////////////////////////////////////////////////////////////////////////
#include "ApplicationFeatures/ApplicationServer.h"
#include "ApplicationFeatures/RocksDBOptionFeature.h"
#include "Basics/Exceptions.h"
#include "Basics/FileUtils.h"
@ -356,6 +357,13 @@ void RocksDBEngine::start() {
if (!isEnabled()) {
return;
}
if (ServerState::instance()->isAgent() &&
!application_features::ApplicationServer::server->options()->processingResult().touched("rocksdb.wal-file-timeout-initial")) {
// reduce --rocksb.wal-file-timeout-initial to 15 seconds for agency nodes
// as we probably won't need the WAL for WAL tailing and replication here
_pruneWaitTimeInitial = 15;
}
LOG_TOPIC(TRACE, arangodb::Logger::ENGINES)
<< "rocksdb version " << rest::Version::getRocksDBVersion()
@ -2328,4 +2336,4 @@ void RocksDBEngine::releaseTick(TRI_voc_tick_t tick) {
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------

View File

@ -230,6 +230,9 @@ class ApplicationServer {
// return VPack options
VPackBuilder options(std::unordered_set<std::string> const& excludes) const;
// return the program options object
std::shared_ptr<options::ProgramOptions> options() const { return _options; }
// return the server state
ServerState state() const { return _state; }

View File

@ -153,13 +153,14 @@ void RocksDBOptionFeature::collectOptions(std::shared_ptr<ProgramOptions> option
new UInt64Parameter(&_maxTotalWalSize));
options->addOption(
"--rocksdb.delayed_write_rate",
"--rocksdb.delayed-write-rate",
"limited write rate to DB (in bytes per second) if we are writing to the "
"last mem-table allowed and we allow more than 3 mem-tables, or if we "
"have surpassed a certain number of level-0 files and need to slowdown "
"writes",
new UInt64Parameter(&_delayedWriteRate),
arangodb::options::makeFlags(arangodb::options::Flags::Hidden));
options->addOldOption("rocksdb.delayed_write_rate", "rocksdb.delayed-write-rate");
options->addOption("--rocksdb.min-write-buffer-number-to-merge",
"minimum number of write buffers that will be merged "