diff options
author | Henning Baldersheim <balder@oath.com> | 2018-04-04 00:34:30 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-04-04 00:34:30 +0200 |
commit | 0d53709e475bc10c294bbcdbd275e00247344703 (patch) | |
tree | dd525de16f67947b6754700eaa2d14f56b1d1163 | |
parent | 26e56f2bca05f82d8aa0c9e5da59fbfc00918161 (diff) |
Update test and serialize bucket information.
4 files changed, 131 insertions, 262 deletions
diff --git a/storage/src/tests/distributor/pendingmessagetrackertest.cpp b/storage/src/tests/distributor/pendingmessagetrackertest.cpp index a7fec5ac460..1ded89dc6d3 100644 --- a/storage/src/tests/distributor/pendingmessagetrackertest.cpp +++ b/storage/src/tests/distributor/pendingmessagetrackertest.cpp @@ -13,8 +13,7 @@ using document::test::makeDocumentBucket; -namespace storage { -namespace distributor { +namespace storage::distributor { using namespace std::chrono_literals; @@ -199,12 +198,10 @@ PendingMessageTrackerTest::testSimple() clock.setAbsoluteTimeInSeconds(1); PendingMessageTracker tracker(compReg); - std::shared_ptr<api::RemoveCommand> remove( - new api::RemoveCommand( + auto remove = std::make_shared<api::RemoveCommand>( makeDocumentBucket(document::BucketId(16, 1234)), - document::DocumentId("userdoc:footype:1234:foo"), 1001)); - remove->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); + document::DocumentId("userdoc:footype:1234:foo"), 1001); + remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); tracker.insert(remove); { @@ -216,8 +213,7 @@ PendingMessageTrackerTest::testSimple() "<b>Bucket(BucketSpace(0x0000000000000001), BucketId(0x40000000000004d2))</b>\n" "<ul>\n" "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> " - "Remove(BucketId(0x40000000000004d2), " - "userdoc:footype:1234:foo, timestamp 1001)</li>\n" + "Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" "</ul>\n"), ost.str()); } @@ -229,8 +225,7 @@ PendingMessageTrackerTest::testSimple() std::ostringstream ost; tracker.reportStatus(ost, framework::HttpUrlPath("/pendingmessages?order=bucket")); - CPPUNIT_ASSERT_MSG(ost.str(), - ost.str().find("doc:") == std::string::npos); + CPPUNIT_ASSERT_MSG(ost.str(), ost.str().find("doc:") == std::string::npos); } } @@ -240,20 +235,17 @@ PendingMessageTrackerTest::insertMessages(PendingMessageTracker& tracker) for (uint32_t i = 0; i < 4; i++) { std::ostringstream ost; ost << "userdoc:footype:1234:" << i; - std::shared_ptr<api::RemoveCommand> remove( - new api::RemoveCommand( + auto remove = std::make_shared<api::RemoveCommand>( makeDocumentBucket(document::BucketId(16, 1234)), - document::DocumentId(ost.str()), 1000 + i)); - remove->setAddress( - api::StorageMessageAddress("storage", - lib::NodeType::STORAGE, i % 2)); + document::DocumentId(ost.str()), 1000 + i); + remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, i % 2)); tracker.insert(remove); } for (uint32_t i = 0; i < 4; i++) { std::ostringstream ost; ost << "userdoc:footype:4567:" << i; - std::shared_ptr<api::RemoveCommand> remove(new api::RemoveCommand(makeDocumentBucket(document::BucketId(16, 4567)), document::DocumentId(ost.str()), 2000 + i)); + auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(document::BucketId(16, 4567)), document::DocumentId(ost.str()), 2000 + i); remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, i % 2)); tracker.insert(remove); } @@ -302,21 +294,21 @@ PendingMessageTrackerTest::testMultipleMessages() std::string( "<b>Bucket(BucketSpace(0x0000000000000001), BucketId(0x40000000000004d2))</b>\n" "<ul>\n" - "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:0, timestamp 1000)</li>\n" - "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:2, timestamp 1002)</li>\n" - "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:1, timestamp 1001)</li>\n" - "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:3, timestamp 1003)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" "</ul>\n" "<b>Bucket(BucketSpace(0x0000000000000001), BucketId(0x40000000000011d7))</b>\n" "<ul>\n" - "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:0, timestamp 2000)</li>\n" - "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:2, timestamp 2002)</li>\n" - "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:1, timestamp 2001)</li>\n" - "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:3, timestamp 2003)</li>\n" - "</ul>\n"), + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "</ul>\n" + ), ost.str()); } - { std::ostringstream ost; tracker.reportStatus(ost, framework::HttpUrlPath("/pendingmessages?order=node")); @@ -324,17 +316,17 @@ PendingMessageTrackerTest::testMultipleMessages() CPPUNIT_ASSERT_CONTAIN(std::string( "<b>Node 0 (pending count: 4)</b>\n" "<ul>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:0, timestamp 1000)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:2, timestamp 1002)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:0, timestamp 2000)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:2, timestamp 2002)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "<li><i>Node 0</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" "</ul>\n" "<b>Node 1 (pending count: 4)</b>\n" "<ul>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:1, timestamp 1001)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), userdoc:footype:1234:3, timestamp 1003)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:1, timestamp 2001)</li>\n" - "<li><b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), userdoc:footype:4567:3, timestamp 2003)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000004d2), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" + "<li><i>Node 1</i>: <b>1970-01-01 00:00:01</b> Remove(BucketId(0x40000000000011d7), priority=127)</li>\n" "</ul>\n" ), ost.str()); } @@ -394,12 +386,9 @@ PendingMessageTrackerTest::testGetPendingMessageTypes() PendingMessageTracker tracker(compReg); document::BucketId bid(16, 1234); - std::shared_ptr<api::RemoveCommand> remove( - new api::RemoveCommand( - makeDocumentBucket(bid), - document::DocumentId("userdoc:footype:1234:foo"), 1001)); - remove->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); + auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(bid), + document::DocumentId("userdoc:footype:1234:foo"), 1001); + remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 0)); tracker.insert(remove); { @@ -434,21 +423,16 @@ PendingMessageTrackerTest::testHasPendingMessage() CPPUNIT_ASSERT(!tracker.hasPendingMessage(1, makeDocumentBucket(bid), api::MessageType::REMOVE_ID)); { - std::shared_ptr<api::RemoveCommand> remove( - new api::RemoveCommand( - makeDocumentBucket(bid), - document::DocumentId("userdoc:footype:1234:foo"), 1001)); - remove->setAddress( - api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 1)); + auto remove = std::make_shared<api::RemoveCommand>(makeDocumentBucket(bid), + document::DocumentId("userdoc:footype:1234:foo"), 1001); + remove->setAddress(api::StorageMessageAddress("storage", lib::NodeType::STORAGE, 1)); tracker.insert(remove); } CPPUNIT_ASSERT(tracker.hasPendingMessage(1, makeDocumentBucket(bid), api::MessageType::REMOVE_ID)); CPPUNIT_ASSERT(!tracker.hasPendingMessage(0, makeDocumentBucket(bid), api::MessageType::REMOVE_ID)); CPPUNIT_ASSERT(!tracker.hasPendingMessage(2, makeDocumentBucket(bid), api::MessageType::REMOVE_ID)); - CPPUNIT_ASSERT(!tracker.hasPendingMessage(1, - makeDocumentBucket(document::BucketId(16, 1233)), - api::MessageType::REMOVE_ID)); + CPPUNIT_ASSERT(!tracker.hasPendingMessage(1, makeDocumentBucket(document::BucketId(16, 1233)), api::MessageType::REMOVE_ID)); CPPUNIT_ASSERT(!tracker.hasPendingMessage(1, makeDocumentBucket(bid), api::MessageType::DELETEBUCKET_ID)); } @@ -460,10 +444,8 @@ class OperationEnumerator : public PendingMessageTracker::Checker public: bool check(uint32_t msgType, uint16_t node, uint8_t p) override { (void) p; - ss << api::MessageType::get(static_cast<api::MessageType::Id>(msgType)) - .getName() - << " -> " << node - << "\n"; + ss << api::MessageType::get(static_cast<api::MessageType::Id>(msgType)).getName() + << " -> " << node << "\n"; return true; } @@ -523,5 +505,4 @@ void PendingMessageTrackerTest::busy_node_duration_can_be_adjusted() { CPPUNIT_ASSERT(!f.tracker().getNodeInfo().isBusy(0)); } -} // distributor -} // storage +} diff --git a/storage/src/vespa/storage/distributor/pendingmessagetracker.cpp b/storage/src/vespa/storage/distributor/pendingmessagetracker.cpp index e3fd0c1f72d..52a35bffc98 100644 --- a/storage/src/vespa/storage/distributor/pendingmessagetracker.cpp +++ b/storage/src/vespa/storage/distributor/pendingmessagetracker.cpp @@ -10,8 +10,7 @@ LOG_SETUP(".pendingmessages"); namespace storage::distributor { PendingMessageTracker::PendingMessageTracker(framework::ComponentRegister& cr) - : framework::HtmlStatusReporter("pendingmessages", - "Pending messages to storage nodes"), + : framework::HtmlStatusReporter("pendingmessages", "Pending messages to storage nodes"), _component(cr, "pendingmessagetracker"), _nodeInfo(_component.getClock()), _nodeBusyDuration(60), @@ -32,6 +31,15 @@ PendingMessageTracker::MessageEntry::MessageEntry(TimePoint timeStamp_, uint32_t nodeIdx(nodeIdx_) { } +vespalib::string +PendingMessageTracker::MessageEntry::toHtml() const { + vespalib::asciistream ss; + ss << "<li><i>Node " << nodeIdx << "</i>: " + << "<b>" << framework::MilliSecTime(timeStamp.count()).toString() << "</b> " + << api::MessageType::get(api::MessageType::Id(msgType)).getName() << "(" << bucket.getBucketId() << ", priority=" << priority << ")</li>\n"; + return ss.str(); +} + PendingMessageTracker::TimePoint PendingMessageTracker::currentTime() const { @@ -82,16 +90,13 @@ PendingMessageTracker::insert(const std::shared_ptr<api::StorageMessage>& msg) { std::lock_guard<std::mutex> guard(_lock); if (msg->getAddress()) { - _messages.insert( - MessageEntry(currentTime(), msg->getType().getId(), msg->getPriority(), msg->getMsgId(), - msg->getBucket(), msg->getAddress()->getIndex())); + _messages.emplace(currentTime(), msg->getType().getId(), msg->getPriority(), msg->getMsgId(), + msg->getBucket(), msg->getAddress()->getIndex()); _nodeInfo.incPending(msg->getAddress()->getIndex()); LOG(debug, "Sending message %s with id %zu to %s", - msg->toString().c_str(), - msg->getMsgId(), - msg->getAddress()->toString().c_str()); + msg->toString().c_str(), msg->getMsgId(), msg->getAddress()->toString().c_str()); } } @@ -137,9 +142,7 @@ runCheckerOnRange(PendingMessageTracker::Checker& checker, const Range& range) } void -PendingMessageTracker::checkPendingMessages(uint16_t node, - const document::Bucket &bucket, - Checker& checker) const +PendingMessageTracker::checkPendingMessages(uint16_t node, const document::Bucket &bucket, Checker& checker) const { std::lock_guard<std::mutex> guard(_lock); const MessagesByNodeAndBucket& msgs(boost::multi_index::get<1>(_messages)); @@ -149,8 +152,7 @@ PendingMessageTracker::checkPendingMessages(uint16_t node, } void -PendingMessageTracker::checkPendingMessages(const document::Bucket &bucket, - Checker& checker) const +PendingMessageTracker::checkPendingMessages(const document::Bucket &bucket, Checker& checker) const { std::lock_guard<std::mutex> guard(_lock); const MessagesByBucketAndType& msgs(boost::multi_index::get<2>(_messages)); @@ -160,9 +162,7 @@ PendingMessageTracker::checkPendingMessages(const document::Bucket &bucket, } bool -PendingMessageTracker::hasPendingMessage(uint16_t node, - const document::Bucket &bucket, - uint32_t messageType) const +PendingMessageTracker::hasPendingMessage(uint16_t node, const document::Bucket &bucket, uint32_t messageType) const { std::lock_guard<std::mutex> guard(_lock); const MessagesByNodeAndBucket& msgs(boost::multi_index::get<1>(_messages)); @@ -174,9 +174,7 @@ PendingMessageTracker::hasPendingMessage(uint16_t node, void PendingMessageTracker::getStatusStartPage(std::ostream& out) const { - out << "View:\n" - "<ul>\n" - "<li><a href=\"?order=bucket\">Group by bucket</a></li>" + out << "View:\n<ul>\n<li><a href=\"?order=bucket\">Group by bucket</a></li>" "<li><a href=\"?order=node\">Group by node</a></li>\n"; } @@ -185,18 +183,10 @@ PendingMessageTracker::getStatusPerBucket(std::ostream& out) const { std::lock_guard<std::mutex> guard(_lock); const MessagesByNodeAndBucket& msgs = boost::multi_index::get<1>(_messages); - using BucketMap = std::map<document::Bucket, - std::vector<vespalib::string>>; + using BucketMap = std::map<document::Bucket, std::vector<vespalib::string>>; BucketMap perBucketMsgs; - for (auto& msg : msgs) { - vespalib::asciistream ss; - ss << "<li><i>Node " - << msg.nodeIdx << "</i>: " - << "<b>" - << framework::MilliSecTime(msg.timeStamp.count()).toString() - << "</b> </li>\n"; - - perBucketMsgs[msg.bucket].emplace_back(ss.str()); + for (const auto& msg : msgs) { + perBucketMsgs[msg.bucket].emplace_back(msg.toHtml()); } bool first = true; @@ -223,23 +213,18 @@ PendingMessageTracker::getStatusPerNode(std::ostream& out) const std::lock_guard<std::mutex> guard(_lock); const MessagesByNodeAndBucket& msgs = boost::multi_index::get<1>(_messages); int lastNode = -1; - for (MessagesByNodeAndBucket::const_iterator iter = - msgs.begin(); iter != msgs.end(); iter++) { - if (iter->nodeIdx != lastNode) { + for (const auto & node : msgs) { + if (node.nodeIdx != lastNode) { if (lastNode != -1) { out << "</ul>\n"; } - out << "<b>Node " << iter->nodeIdx - << " (pending count: " - << _nodeInfo.getPendingCount(iter->nodeIdx) - << ")</b>\n<ul>\n"; - lastNode = iter->nodeIdx; + out << "<b>Node " << node.nodeIdx << " (pending count: " + << _nodeInfo.getPendingCount(node.nodeIdx) << ")</b>\n<ul>\n"; + lastNode = node.nodeIdx; } - out << "<li><b>" - << framework::MilliSecTime(iter->timeStamp.count()).toString() - << "</b> </li>\n"; + out << node.toHtml(); } if (lastNode != -1) { @@ -260,11 +245,6 @@ PendingMessageTracker::reportHtmlStatus(std::ostream& out, const framework::Http } void -PendingMessageTracker::print(std::ostream& /*out*/, - bool /*verbose*/, - const std::string& /*indent*/) const -{ - -} +PendingMessageTracker::print(std::ostream&, bool, const std::string&) const { } } diff --git a/storage/src/vespa/storage/distributor/pendingmessagetracker.h b/storage/src/vespa/storage/distributor/pendingmessagetracker.h index c899fea6dbb..275eba7f20c 100644 --- a/storage/src/vespa/storage/distributor/pendingmessagetracker.h +++ b/storage/src/vespa/storage/distributor/pendingmessagetracker.h @@ -32,9 +32,7 @@ public: public: virtual ~Checker() {} - virtual bool check(uint32_t messageType, - uint16_t node, - uint8_t priority) = 0; + virtual bool check(uint32_t messageType, uint16_t node, uint8_t priority) = 0; }; /** @@ -59,25 +57,20 @@ public: * passing it to the given type checker. * Breaks when the checker returns false. */ - void checkPendingMessages(uint16_t node, - const document::Bucket &bucket, - Checker& checker) const; + void checkPendingMessages(uint16_t node, const document::Bucket &bucket, Checker& checker) const; /** * Goes through each pending message (across all nodes) for the given bucket * and invokes the given checker with the node, message type and priority. * Breaks when the checker returns false. */ - void checkPendingMessages(const document::Bucket &bucket, - Checker& checker) const; + void checkPendingMessages(const document::Bucket &bucket, Checker& checker) const; /** * Utility function for checking if there's a message of type * messageType pending to bucket bid on the given node. */ - bool hasPendingMessage(uint16_t node, - const document::Bucket &bucket, - uint32_t messageType) const; + bool hasPendingMessage(uint16_t node, const document::Bucket &bucket, uint32_t messageType) const; /** * Returns a vector containing the number of pending messages to each storage node. @@ -99,26 +92,20 @@ public: private: struct MessageEntry { - TimePoint timeStamp; - uint32_t msgType; - uint32_t priority; - uint64_t msgId; + TimePoint timeStamp; + uint32_t msgType; + uint32_t priority; + uint64_t msgId; document::Bucket bucket; - uint16_t nodeIdx; - - MessageEntry(TimePoint timeStamp, - uint32_t msgType, - uint32_t priority, - uint64_t msgId, - document::Bucket bucket, - uint16_t nodeIdx); - }; + uint16_t nodeIdx; - struct MessageIdKey - : boost::multi_index::member<MessageEntry, uint64_t, &MessageEntry::msgId> - { + MessageEntry(TimePoint timeStamp, uint32_t msgType, uint32_t priority, + uint64_t msgId, document::Bucket bucket, uint16_t nodeIdx); + vespalib::string toHtml() const; }; + struct MessageIdKey : boost::multi_index::member<MessageEntry, uint64_t, &MessageEntry::msgId> {}; + /** * Each entry has a separate composite keyed index on node+bucket id+type. * This makes it efficient to find all messages for a node, for a bucket @@ -127,12 +114,9 @@ private: struct CompositeNodeBucketKey : boost::multi_index::composite_key< MessageEntry, - boost::multi_index::member<MessageEntry, uint16_t, - &MessageEntry::nodeIdx>, - boost::multi_index::member<MessageEntry, document::Bucket, - &MessageEntry::bucket>, - boost::multi_index::member<MessageEntry, uint32_t, - &MessageEntry::msgType> + boost::multi_index::member<MessageEntry, uint16_t, &MessageEntry::nodeIdx>, + boost::multi_index::member<MessageEntry, document::Bucket, &MessageEntry::bucket>, + boost::multi_index::member<MessageEntry, uint32_t, &MessageEntry::msgType> > { }; @@ -140,12 +124,9 @@ private: struct CompositeBucketMsgNodeKey : boost::multi_index::composite_key< MessageEntry, - boost::multi_index::member<MessageEntry, document::Bucket, - &MessageEntry::bucket>, - boost::multi_index::member<MessageEntry, uint32_t, - &MessageEntry::msgType>, - boost::multi_index::member<MessageEntry, uint16_t, - &MessageEntry::nodeIdx> + boost::multi_index::member<MessageEntry, document::Bucket, &MessageEntry::bucket>, + boost::multi_index::member<MessageEntry, uint32_t, &MessageEntry::msgType>, + boost::multi_index::member<MessageEntry, uint16_t, &MessageEntry::nodeIdx> > { }; diff --git a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp index 5a8e822f30c..22195466dd2 100644 --- a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp +++ b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp @@ -42,142 +42,75 @@ StorageMessage::getPriorityString(Priority p) { std::map<MessageType::Id, MessageType*> MessageType::_codes; const MessageType MessageType::DOCBLOCK("DocBlock", DOCBLOCK_ID); -const MessageType MessageType::DOCBLOCK_REPLY( - "DocBlock Reply", DOCBLOCK_REPLY_ID, &MessageType::DOCBLOCK); +const MessageType MessageType::DOCBLOCK_REPLY("DocBlock Reply", DOCBLOCK_REPLY_ID, &MessageType::DOCBLOCK); const MessageType MessageType::GET("Get", GET_ID); -const MessageType MessageType::GET_REPLY( - "Get Reply", GET_REPLY_ID, &MessageType::GET); +const MessageType MessageType::GET_REPLY("Get Reply", GET_REPLY_ID, &MessageType::GET); const MessageType MessageType::INTERNAL("Internal", INTERNAL_ID); -const MessageType MessageType::INTERNAL_REPLY( - "Internal Reply", INTERNAL_REPLY_ID, &MessageType::INTERNAL); +const MessageType MessageType::INTERNAL_REPLY("Internal Reply", INTERNAL_REPLY_ID, &MessageType::INTERNAL); const MessageType MessageType::PUT("Put", PUT_ID); -const MessageType MessageType::PUT_REPLY( - "Put Reply", PUT_REPLY_ID, &MessageType::PUT); +const MessageType MessageType::PUT_REPLY("Put Reply", PUT_REPLY_ID, &MessageType::PUT); const MessageType MessageType::UPDATE("Update", UPDATE_ID); -const MessageType MessageType::UPDATE_REPLY( - "Update Reply", UPDATE_REPLY_ID, &MessageType::UPDATE); +const MessageType MessageType::UPDATE_REPLY("Update Reply", UPDATE_REPLY_ID, &MessageType::UPDATE); const MessageType MessageType::REMOVE("Remove", REMOVE_ID); -const MessageType MessageType::REMOVE_REPLY( - "Remove Reply", REMOVE_REPLY_ID, &MessageType::REMOVE); +const MessageType MessageType::REMOVE_REPLY("Remove Reply", REMOVE_REPLY_ID, &MessageType::REMOVE); const MessageType MessageType::REVERT("Revert", REVERT_ID); -const MessageType MessageType::REVERT_REPLY( - "Revert Reply", REVERT_REPLY_ID, &MessageType::REVERT); -const MessageType MessageType::VISITOR_CREATE( - "Visitor Create", VISITOR_CREATE_ID); -const MessageType MessageType::VISITOR_CREATE_REPLY( - "Visitor Create Reply", VISITOR_CREATE_REPLY_ID, - &MessageType::VISITOR_CREATE); -const MessageType MessageType::VISITOR_DESTROY( - "Visitor Destroy", VISITOR_DESTROY_ID); -const MessageType MessageType::VISITOR_DESTROY_REPLY( - "Visitor Destroy Reply", VISITOR_DESTROY_REPLY_ID, - &MessageType::VISITOR_DESTROY); -const MessageType MessageType::REQUESTBUCKETINFO("Request bucket info", - REQUESTBUCKETINFO_ID); -const MessageType MessageType::REQUESTBUCKETINFO_REPLY( - "Request bucket info reply", REQUESTBUCKETINFO_REPLY_ID, - &MessageType::REQUESTBUCKETINFO); -const MessageType MessageType::NOTIFYBUCKETCHANGE("Notify bucket change", - NOTIFYBUCKETCHANGE_ID); -const MessageType MessageType::NOTIFYBUCKETCHANGE_REPLY( - "Notify bucket change reply", NOTIFYBUCKETCHANGE_REPLY_ID, - &MessageType::NOTIFYBUCKETCHANGE); +const MessageType MessageType::REVERT_REPLY("Revert Reply", REVERT_REPLY_ID, &MessageType::REVERT); +const MessageType MessageType::VISITOR_CREATE("Visitor Create", VISITOR_CREATE_ID); +const MessageType MessageType::VISITOR_CREATE_REPLY("Visitor Create Reply", VISITOR_CREATE_REPLY_ID, &MessageType::VISITOR_CREATE); +const MessageType MessageType::VISITOR_DESTROY("Visitor Destroy", VISITOR_DESTROY_ID); +const MessageType MessageType::VISITOR_DESTROY_REPLY("Visitor Destroy Reply", VISITOR_DESTROY_REPLY_ID, &MessageType::VISITOR_DESTROY); +const MessageType MessageType::REQUESTBUCKETINFO("Request bucket info", REQUESTBUCKETINFO_ID); +const MessageType MessageType::REQUESTBUCKETINFO_REPLY("Request bucket info reply", REQUESTBUCKETINFO_REPLY_ID, &MessageType::REQUESTBUCKETINFO); +const MessageType MessageType::NOTIFYBUCKETCHANGE("Notify bucket change", NOTIFYBUCKETCHANGE_ID); +const MessageType MessageType::NOTIFYBUCKETCHANGE_REPLY("Notify bucket change reply", NOTIFYBUCKETCHANGE_REPLY_ID, &MessageType::NOTIFYBUCKETCHANGE); const MessageType MessageType::CREATEBUCKET("Create bucket", CREATEBUCKET_ID); -const MessageType MessageType::CREATEBUCKET_REPLY( - "Create bucket reply", CREATEBUCKET_REPLY_ID, - &MessageType::CREATEBUCKET); +const MessageType MessageType::CREATEBUCKET_REPLY("Create bucket reply", CREATEBUCKET_REPLY_ID, &MessageType::CREATEBUCKET); const MessageType MessageType::MERGEBUCKET("Merge bucket", MERGEBUCKET_ID); -const MessageType MessageType::MERGEBUCKET_REPLY( - "Merge bucket reply", MERGEBUCKET_REPLY_ID, - &MessageType::MERGEBUCKET); +const MessageType MessageType::MERGEBUCKET_REPLY("Merge bucket reply", MERGEBUCKET_REPLY_ID, &MessageType::MERGEBUCKET); const MessageType MessageType::DELETEBUCKET("Delete bucket", DELETEBUCKET_ID); -const MessageType MessageType::DELETEBUCKET_REPLY( - "Delete bucket reply", DELETEBUCKET_REPLY_ID, - &MessageType::DELETEBUCKET); +const MessageType MessageType::DELETEBUCKET_REPLY("Delete bucket reply", DELETEBUCKET_REPLY_ID, &MessageType::DELETEBUCKET); const MessageType MessageType::SETNODESTATE("Set node state", SETNODESTATE_ID); -const MessageType MessageType::SETNODESTATE_REPLY( - "Set node state reply", SETNODESTATE_REPLY_ID, - &MessageType::SETNODESTATE); +const MessageType MessageType::SETNODESTATE_REPLY("Set node state reply", SETNODESTATE_REPLY_ID, &MessageType::SETNODESTATE); const MessageType MessageType::GETNODESTATE("Get node state", GETNODESTATE_ID); -const MessageType MessageType::GETNODESTATE_REPLY( - "Get node state reply", GETNODESTATE_REPLY_ID, - &MessageType::GETNODESTATE); +const MessageType MessageType::GETNODESTATE_REPLY("Get node state reply", GETNODESTATE_REPLY_ID, &MessageType::GETNODESTATE); const MessageType MessageType::SETSYSTEMSTATE("Set system state", SETSYSTEMSTATE_ID); -const MessageType MessageType::SETSYSTEMSTATE_REPLY( - "Set system state reply", SETSYSTEMSTATE_REPLY_ID, - &MessageType::SETSYSTEMSTATE); +const MessageType MessageType::SETSYSTEMSTATE_REPLY("Set system state reply", SETSYSTEMSTATE_REPLY_ID, &MessageType::SETSYSTEMSTATE); const MessageType MessageType::GETSYSTEMSTATE("Get system state", GETSYSTEMSTATE_ID); -const MessageType MessageType::GETSYSTEMSTATE_REPLY( - "get system state reply", GETSYSTEMSTATE_REPLY_ID, - &MessageType::GETSYSTEMSTATE); +const MessageType MessageType::GETSYSTEMSTATE_REPLY("get system state reply", GETSYSTEMSTATE_REPLY_ID, &MessageType::GETSYSTEMSTATE); const MessageType MessageType::GETBUCKETDIFF("GetBucketDiff", GETBUCKETDIFF_ID); -const MessageType MessageType::GETBUCKETDIFF_REPLY( - "GetBucketDiff reply", GETBUCKETDIFF_REPLY_ID, - &MessageType::GETBUCKETDIFF); -const MessageType MessageType::APPLYBUCKETDIFF("ApplyBucketDiff", - APPLYBUCKETDIFF_ID); -const MessageType MessageType::APPLYBUCKETDIFF_REPLY( - "ApplyBucketDiff reply", APPLYBUCKETDIFF_REPLY_ID, - &MessageType::APPLYBUCKETDIFF); -const MessageType MessageType::VISITOR_INFO("VisitorInfo", - VISITOR_INFO_ID); -const MessageType MessageType::VISITOR_INFO_REPLY( - "VisitorInfo reply", VISITOR_INFO_REPLY_ID, - &MessageType::VISITOR_INFO); +const MessageType MessageType::GETBUCKETDIFF_REPLY("GetBucketDiff reply", GETBUCKETDIFF_REPLY_ID, &MessageType::GETBUCKETDIFF); +const MessageType MessageType::APPLYBUCKETDIFF("ApplyBucketDiff", APPLYBUCKETDIFF_ID); +const MessageType MessageType::APPLYBUCKETDIFF_REPLY("ApplyBucketDiff reply", APPLYBUCKETDIFF_REPLY_ID, &MessageType::APPLYBUCKETDIFF); +const MessageType MessageType::VISITOR_INFO("VisitorInfo", VISITOR_INFO_ID); +const MessageType MessageType::VISITOR_INFO_REPLY("VisitorInfo reply", VISITOR_INFO_REPLY_ID, &MessageType::VISITOR_INFO); const MessageType MessageType::SEARCHRESULT("SearchResult", SEARCHRESULT_ID); -const MessageType MessageType::SEARCHRESULT_REPLY( - "SearchResult reply", SEARCHRESULT_REPLY_ID, - &MessageType::SEARCHRESULT); +const MessageType MessageType::SEARCHRESULT_REPLY("SearchResult reply", SEARCHRESULT_REPLY_ID, &MessageType::SEARCHRESULT); const MessageType MessageType::DOCUMENTSUMMARY("DocumentSummary", DOCUMENTSUMMARY_ID); -const MessageType MessageType::DOCUMENTSUMMARY_REPLY( - "DocumentSummary reply", DOCUMENTSUMMARY_REPLY_ID, - &MessageType::DOCUMENTSUMMARY); +const MessageType MessageType::DOCUMENTSUMMARY_REPLY("DocumentSummary reply", DOCUMENTSUMMARY_REPLY_ID, &MessageType::DOCUMENTSUMMARY); const MessageType MessageType::MAPVISITOR("Mapvisitor", MAPVISITOR_ID); -const MessageType MessageType::MAPVISITOR_REPLY( - "Mapvisitor reply", MAPVISITOR_REPLY_ID, - &MessageType::MAPVISITOR); +const MessageType MessageType::MAPVISITOR_REPLY("Mapvisitor reply", MAPVISITOR_REPLY_ID, &MessageType::MAPVISITOR); const MessageType MessageType::SPLITBUCKET("SplitBucket", SPLITBUCKET_ID); -const MessageType MessageType::SPLITBUCKET_REPLY( - "SplitBucket reply", SPLITBUCKET_REPLY_ID, - &MessageType::SPLITBUCKET); +const MessageType MessageType::SPLITBUCKET_REPLY("SplitBucket reply", SPLITBUCKET_REPLY_ID, &MessageType::SPLITBUCKET); const MessageType MessageType::JOINBUCKETS("Joinbuckets", JOINBUCKETS_ID); -const MessageType MessageType::JOINBUCKETS_REPLY( - "Joinbuckets reply", JOINBUCKETS_REPLY_ID, - &MessageType::JOINBUCKETS); +const MessageType MessageType::JOINBUCKETS_REPLY("Joinbuckets reply", JOINBUCKETS_REPLY_ID, &MessageType::JOINBUCKETS); const MessageType MessageType::STATBUCKET("Statbucket", STATBUCKET_ID); -const MessageType MessageType::STATBUCKET_REPLY( - "Statbucket Reply", STATBUCKET_REPLY_ID, &MessageType::STATBUCKET); +const MessageType MessageType::STATBUCKET_REPLY("Statbucket Reply", STATBUCKET_REPLY_ID, &MessageType::STATBUCKET); const MessageType MessageType::GETBUCKETLIST("Getbucketlist", GETBUCKETLIST_ID); -const MessageType MessageType::GETBUCKETLIST_REPLY( - "Getbucketlist Reply", GETBUCKETLIST_REPLY_ID, &MessageType::GETBUCKETLIST); +const MessageType MessageType::GETBUCKETLIST_REPLY("Getbucketlist Reply", GETBUCKETLIST_REPLY_ID, &MessageType::GETBUCKETLIST); const MessageType MessageType::DOCUMENTLIST("documentlist", DOCUMENTLIST_ID); -const MessageType MessageType::DOCUMENTLIST_REPLY( - "documentlist Reply", DOCUMENTLIST_REPLY_ID, &MessageType::DOCUMENTLIST); +const MessageType MessageType::DOCUMENTLIST_REPLY("documentlist Reply", DOCUMENTLIST_REPLY_ID, &MessageType::DOCUMENTLIST); const MessageType MessageType::EMPTYBUCKETS("Emptybuckets", EMPTYBUCKETS_ID); -const MessageType MessageType::EMPTYBUCKETS_REPLY( - "Emptybuckets Reply", EMPTYBUCKETS_REPLY_ID, &MessageType::EMPTYBUCKETS); +const MessageType MessageType::EMPTYBUCKETS_REPLY("Emptybuckets Reply", EMPTYBUCKETS_REPLY_ID, &MessageType::EMPTYBUCKETS); const MessageType MessageType::REMOVELOCATION("Removelocation", REMOVELOCATION_ID); -const MessageType MessageType::REMOVELOCATION_REPLY( - "Removelocation Reply", REMOVELOCATION_REPLY_ID, &MessageType::REMOVELOCATION); +const MessageType MessageType::REMOVELOCATION_REPLY("Removelocation Reply", REMOVELOCATION_REPLY_ID, &MessageType::REMOVELOCATION); const MessageType MessageType::QUERYRESULT("QueryResult", QUERYRESULT_ID); -const MessageType MessageType::QUERYRESULT_REPLY( - "QueryResult reply", QUERYRESULT_REPLY_ID, - &MessageType::QUERYRESULT); +const MessageType MessageType::QUERYRESULT_REPLY("QueryResult reply", QUERYRESULT_REPLY_ID, &MessageType::QUERYRESULT); const MessageType MessageType::BATCHPUTREMOVE("BatchPutRemove", BATCHPUTREMOVE_ID); -const MessageType MessageType::BATCHPUTREMOVE_REPLY( - "BatchPutRemove reply", BATCHPUTREMOVE_REPLY_ID, - &MessageType::BATCHPUTREMOVE); +const MessageType MessageType::BATCHPUTREMOVE_REPLY("BatchPutRemove reply", BATCHPUTREMOVE_REPLY_ID, &MessageType::BATCHPUTREMOVE); const MessageType MessageType::BATCHDOCUMENTUPDATE("BatchDocumentUpdate", BATCHDOCUMENTUPDATE_ID); -const MessageType MessageType::BATCHDOCUMENTUPDATE_REPLY( - "BatchDocumentUpdate reply", BATCHDOCUMENTUPDATE_REPLY_ID, - &MessageType::BATCHDOCUMENTUPDATE); -const MessageType MessageType::SETBUCKETSTATE( - "SetBucketState", - SETBUCKETSTATE_ID); -const MessageType MessageType::SETBUCKETSTATE_REPLY( - "SetBucketStateReply", - SETBUCKETSTATE_REPLY_ID, - &MessageType::SETBUCKETSTATE); +const MessageType MessageType::BATCHDOCUMENTUPDATE_REPLY("BatchDocumentUpdate reply", BATCHDOCUMENTUPDATE_REPLY_ID, &MessageType::BATCHDOCUMENTUPDATE); +const MessageType MessageType::SETBUCKETSTATE("SetBucketState", SETBUCKETSTATE_ID); +const MessageType MessageType::SETBUCKETSTATE_REPLY("SetBucketStateReply", SETBUCKETSTATE_REPLY_ID, &MessageType::SETBUCKETSTATE); const MessageType& MessageType::MessageType::get(Id id) @@ -257,9 +190,7 @@ uint16_t StorageMessageAddress::getIndex() const { if (_type == 0) { - throw vespalib::IllegalStateException( - "Cannot retrieve node index out of external address", - VESPA_STRLOC); + throw vespalib::IllegalStateException("Cannot retrieve node index out of external address", VESPA_STRLOC); } return _index; } @@ -268,9 +199,7 @@ const lib::NodeType& StorageMessageAddress::getNodeType() const { if (_type == 0) { - throw vespalib::IllegalStateException( - "Cannot retrieve node type out of external address", - VESPA_STRLOC); + throw vespalib::IllegalStateException("Cannot retrieve node type out of external address", VESPA_STRLOC); } return *_type; } @@ -279,9 +208,7 @@ const vespalib::string& StorageMessageAddress::getCluster() const { if (_type == 0) { - throw vespalib::IllegalStateException( - "Cannot retrieve cluster out of external address", - VESPA_STRLOC); + throw vespalib::IllegalStateException("Cannot retrieve cluster out of external address", VESPA_STRLOC); } return _cluster; } @@ -359,7 +286,7 @@ StorageMessage::StorageMessage(const StorageMessage& other, Id id) { } -StorageMessage::~StorageMessage() { } +StorageMessage::~StorageMessage() = default; void StorageMessage::setNewMsgId() { |