aboutsummaryrefslogtreecommitdiffstats
path: root/storageapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-17 22:20:08 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-18 18:22:15 +0000
commitd6975953e4284068fbd76e80bbf7e802003adcaf (patch)
tree2390aa8ca4e15e881240dab5ece2d05b8685bf89 /storageapi
parent804b5ea7d3822847d2b732c79fd35a5eceba15b4 (diff)
Reorder members for smaller memory footprint.
Diffstat (limited to 'storageapi')
-rw-r--r--storageapi/src/tests/messageapi/storage_message_address_test.cpp5
-rw-r--r--storageapi/src/vespa/storageapi/messageapi/bucketreply.cpp6
-rw-r--r--storageapi/src/vespa/storageapi/messageapi/storagecommand.h2
-rw-r--r--storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp22
-rw-r--r--storageapi/src/vespa/storageapi/messageapi/storagemessage.h16
5 files changed, 28 insertions, 23 deletions
diff --git a/storageapi/src/tests/messageapi/storage_message_address_test.cpp b/storageapi/src/tests/messageapi/storage_message_address_test.cpp
index c340cba4b28..6cf87b348a9 100644
--- a/storageapi/src/tests/messageapi/storage_message_address_test.cpp
+++ b/storageapi/src/tests/messageapi/storage_message_address_test.cpp
@@ -31,6 +31,11 @@ TEST(StorageMessageAddressTest, storage_hash_covers_all_expected_fields) {
hash_of("foo", lib::NodeType::DISTRIBUTOR, 0));
EXPECT_NE(hash_of("foo", lib::NodeType::STORAGE, 0),
hash_of("foo", lib::NodeType::STORAGE, 1));
+
+ EXPECT_EQ(112u, sizeof(StorageMessageAddress));
+ EXPECT_EQ(248u, sizeof(StorageMessage));
+ EXPECT_EQ(80u, sizeof(documentapi::LoadType));
+ EXPECT_EQ(120u, sizeof(mbus::Trace));
}
} // storage::api
diff --git a/storageapi/src/vespa/storageapi/messageapi/bucketreply.cpp b/storageapi/src/vespa/storageapi/messageapi/bucketreply.cpp
index 1385fc331ac..e5fb7764aeb 100644
--- a/storageapi/src/vespa/storageapi/messageapi/bucketreply.cpp
+++ b/storageapi/src/vespa/storageapi/messageapi/bucketreply.cpp
@@ -7,8 +7,7 @@
using document::Bucket;
using document::BucketId;
-namespace storage {
-namespace api {
+namespace storage::api {
BucketReply::BucketReply(const BucketCommand& cmd,
const ReturnCode& code)
@@ -42,5 +41,4 @@ BucketReply::print(std::ostream& out, bool verbose,
}
}
-} // api
-} // storage
+}
diff --git a/storageapi/src/vespa/storageapi/messageapi/storagecommand.h b/storageapi/src/vespa/storageapi/messageapi/storagecommand.h
index c835168c5b7..bd55ee57a8f 100644
--- a/storageapi/src/vespa/storageapi/messageapi/storagecommand.h
+++ b/storageapi/src/vespa/storageapi/messageapi/storagecommand.h
@@ -30,7 +30,7 @@ protected:
public:
DECLARE_POINTER_TYPEDEFS(StorageCommand);
- virtual ~StorageCommand();
+ ~StorageCommand() override;
bool sourceIndexSet() const { return (_sourceIndex != 0xffff); }
void setSourceIndex(uint16_t sourceIndex) { _sourceIndex = sourceIndex; }
diff --git a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp
index 0f5546a5510..cc62e6664e0 100644
--- a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp
+++ b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp
@@ -141,10 +141,10 @@ MessageType::print(std::ostream& out, bool verbose, const std::string& indent) c
StorageMessageAddress::StorageMessageAddress(const mbus::Route& route)
: _route(route),
- _protocol(DOCUMENT),
+ _cluster(),
_precomputed_storage_hash(0),
- _cluster(""),
_type(nullptr),
+ _protocol(DOCUMENT),
_index(0xFFFF)
{ }
@@ -163,10 +163,10 @@ createAddress(vespalib::stringref cluster, const lib::NodeType& type, uint16_t i
// TODO we ideally want this removed. Currently just in place to support usage as map key when emplacement not available
StorageMessageAddress::StorageMessageAddress()
: _route(),
- _protocol(Protocol::STORAGE),
- _precomputed_storage_hash(0),
_cluster(),
+ _precomputed_storage_hash(0),
_type(nullptr),
+ _protocol(Protocol::STORAGE),
_index(0)
{}
@@ -174,10 +174,10 @@ StorageMessageAddress::StorageMessageAddress()
StorageMessageAddress::StorageMessageAddress(vespalib::stringref cluster, const lib::NodeType& type,
uint16_t index, Protocol protocol)
: _route(),
- _protocol(protocol),
- _precomputed_storage_hash(0),
_cluster(cluster),
+ _precomputed_storage_hash(0),
_type(&type),
+ _protocol(protocol),
_index(index)
{
std::vector<mbus::IHopDirective::SP> directives;
@@ -269,20 +269,22 @@ StorageMessage::generateMsgId()
StorageMessage::StorageMessage(const MessageType& type, Id id)
: _type(type),
_msgId(id),
- _priority(NORMAL),
_address(),
_loadType(documentapi::LoadType::DEFAULT),
- _approxByteSize(50)
+ _trace(),
+ _approxByteSize(50),
+ _priority(NORMAL)
{
}
StorageMessage::StorageMessage(const StorageMessage& other, Id id)
: _type(other._type),
_msgId(id),
- _priority(other._priority),
_address(),
_loadType(other._loadType),
- _approxByteSize(other._approxByteSize)
+ _trace(),
+ _approxByteSize(other._approxByteSize),
+ _priority(other._priority)
{
}
diff --git a/storageapi/src/vespa/storageapi/messageapi/storagemessage.h b/storageapi/src/vespa/storageapi/messageapi/storagemessage.h
index aa23d3a0cae..366ba684445 100644
--- a/storageapi/src/vespa/storageapi/messageapi/storagemessage.h
+++ b/storageapi/src/vespa/storageapi/messageapi/storagemessage.h
@@ -268,12 +268,12 @@ public:
enum Protocol { STORAGE, DOCUMENT };
private:
- mbus::Route _route;
- Protocol _protocol;
+ mbus::Route _route;
+ vespalib::string _cluster;
// Used for internal VDS addresses only
size_t _precomputed_storage_hash;
- vespalib::string _cluster;
const lib::NodeType* _type;
+ Protocol _protocol;
uint16_t _index;
public:
@@ -359,12 +359,12 @@ protected:
static Id generateMsgId();
const MessageType& _type;
- Id _msgId;
- Priority _priority;
+ Id _msgId;
std::unique_ptr<StorageMessageAddress> _address;
documentapi::LoadType _loadType;
mbus::Trace _trace;
- uint32_t _approxByteSize;
+ uint32_t _approxByteSize;
+ Priority _priority;
StorageMessage(const MessageType& code, Id id);
StorageMessage(const StorageMessage&, Id id);
@@ -373,7 +373,7 @@ protected:
public:
StorageMessage& operator=(const StorageMessage&) = delete;
StorageMessage(const StorageMessage&) = delete;
- virtual ~StorageMessage();
+ ~StorageMessage() override;
Id getMsgId() const { return _msgId; }
@@ -394,7 +394,7 @@ public:
const StorageMessageAddress* getAddress() const { return _address.get(); }
void setAddress(const StorageMessageAddress& address) {
- _address.reset(new StorageMessageAddress(address));
+ _address = std::make_unique<StorageMessageAddress>(address);
}
/**