diff --git a/arangod/Agency/Agent.cpp b/arangod/Agency/Agent.cpp index c0c09f838d..48ce687da8 100644 --- a/arangod/Agency/Agent.cpp +++ b/arangod/Agency/Agent.cpp @@ -279,10 +279,11 @@ void Agent::sendAppendEntriesRPC() { std::vector unconfirmed = _state.get(last_confirmed); index_t highest = unconfirmed.back().index; - if (highest == _lastHighest[followerId] && - (long)(500.0e6 * _config.minPing()) > - (std::chrono::system_clock::now() - _lastSent[followerId]) - .count()) { + std::chrono::duration m = + std::chrono::system_clock::now() - _lastSent[followerId]; + + if (highest == _lastHighest[followerId] + && 0.5 * _config.minPing() > m.count()) { continue; } diff --git a/arangod/Agency/Agent.h b/arangod/Agency/Agent.h index 8cabf2ac13..d8a1eddeb9 100644 --- a/arangod/Agency/Agent.h +++ b/arangod/Agency/Agent.h @@ -170,7 +170,7 @@ class Agent : public arangodb::Thread { /// @brief Activate this agent in single agent mode. bool activateAgency(); - /// @brief Activate new agent in pool to replace failed agent + /// @brief Activate new agent in pool to replace failed bool activateStandbyAgent(); /// @brief Assignment of persisted state diff --git a/arangod/Agency/Node.cpp b/arangod/Agency/Node.cpp index c471d585ce..5d848fcf30 100644 --- a/arangod/Agency/Node.cpp +++ b/arangod/Agency/Node.cpp @@ -661,11 +661,14 @@ bool Node::applies(VPackSlice const& slice) { return true; } -void Node::toBuilder(Builder& builder) const { +void Node::toBuilder(Builder& builder, bool showHidden) const { try { if (type() == NODE) { VPackObjectBuilder guard(&builder); for (auto const& child : _children) { + if (child.first[0] == '.' && !showHidden) { + continue; + } builder.add(VPackValue(child.first)); child.second->toBuilder(builder); } diff --git a/arangod/Agency/Node.h b/arangod/Agency/Node.h index b19f6bb477..982f956801 100644 --- a/arangod/Agency/Node.h +++ b/arangod/Agency/Node.h @@ -164,7 +164,7 @@ class Node { bool handle(arangodb::velocypack::Slice const&); /// @brief Create Builder representing this store - void toBuilder(Builder&) const; + void toBuilder(Builder&, bool showHidden = false) const; /// @brief Access children Children& children(); diff --git a/arangod/Agency/Store.cpp b/arangod/Agency/Store.cpp index fd58d540a9..b83cb0addf 100644 --- a/arangod/Agency/Store.cpp +++ b/arangod/Agency/Store.cpp @@ -466,7 +466,7 @@ query_t Store::clearExpired() const { /// Dump internal data to builder void Store::dumpToBuilder(Builder& builder) const { MUTEX_LOCKER(storeLocker, _storeLock); - toBuilder(builder); + toBuilder(builder, true); { VPackObjectBuilder guard(&builder); for (auto const& i : _timeTable) { @@ -591,7 +591,8 @@ Store& Store::operator=(VPackSlice const& slice) { } /// Put key value store in velocypack -void Store::toBuilder(Builder& b) const { _node.toBuilder(b); } +void Store::toBuilder(Builder& b, bool showHidden) const { + _node.toBuilder(b, showHidden); } /// Get kv-store at path vector Node Store::operator()(std::vector const& pv) { return _node(pv); } diff --git a/arangod/Agency/Store.h b/arangod/Agency/Store.h index 3129803f9b..c0d07cccca 100644 --- a/arangod/Agency/Store.h +++ b/arangod/Agency/Store.h @@ -100,7 +100,7 @@ class Store : public arangodb::Thread { bool applies(arangodb::velocypack::Slice const&); /// @brief Create Builder representing this store - void toBuilder(Builder&) const; + void toBuilder(Builder&, bool showHidden = false) const; /// @brief Copy out a node Node const get(std::string const& path) const;