summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-12-03 12:57:13 +0100
committerGitHub <noreply@github.com>2020-12-03 12:57:13 +0100
commit815ad79317d9d308dbe8ffdc50899fc7901aace9 (patch)
tree427d0921ad6ea7e489964b78e57ea081fada9aa1 /storage
parente65a3c0549b9858325d303ae4a0eb02055204155 (diff)
Revert "Use the super bucket key when resolving which RPC target to use to ha…"
Diffstat (limited to 'storage')
-rw-r--r--storage/src/tests/common/CMakeLists.txt1
-rw-r--r--storage/src/tests/common/bucket_utils_test.cpp24
-rw-r--r--storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp18
-rw-r--r--storage/src/vespa/storage/common/bucket_utils.h20
-rw-r--r--storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp10
5 files changed, 11 insertions, 62 deletions
diff --git a/storage/src/tests/common/CMakeLists.txt b/storage/src/tests/common/CMakeLists.txt
index 400255964d6..9e18a3ca7ca 100644
--- a/storage/src/tests/common/CMakeLists.txt
+++ b/storage/src/tests/common/CMakeLists.txt
@@ -12,7 +12,6 @@ vespa_add_library(storage_testcommon TEST
vespa_add_executable(storage_common_gtest_runner_app TEST
SOURCES
- bucket_utils_test.cpp
global_bucket_space_distribution_converter_test.cpp
gtest_runner.cpp
metricstest.cpp
diff --git a/storage/src/tests/common/bucket_utils_test.cpp b/storage/src/tests/common/bucket_utils_test.cpp
deleted file mode 100644
index 7dcd6e3e1c3..00000000000
--- a/storage/src/tests/common/bucket_utils_test.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/document/bucket/bucketid.h>
-#include <vespa/storage/common/bucket_utils.h>
-#include <vespa/vespalib/gtest/gtest.h>
-
-using document::BucketId;
-using storage::get_super_bucket_key;
-constexpr uint8_t MUB = storage::spi::BucketLimits::MinUsedBits;
-
-TEST(SuperBucketKeyTest, super_bucket_is_min_used_bits_of_msb_of_bucket_id_key)
-{
- // Note that bits are reversed when creating a key from the bucket id
- EXPECT_EQ(0x0F, get_super_bucket_key(BucketId(MUB, 0x1F0)));
- EXPECT_EQ(0x0F, get_super_bucket_key(BucketId(MUB + 1, 0x1F0)));
- EXPECT_EQ(0x0F, get_super_bucket_key(BucketId(MUB, 0x2F0)));
- EXPECT_EQ(0x0F, get_super_bucket_key(BucketId(MUB + 1, 0x2F0)));
-
- EXPECT_EQ(0xF4, get_super_bucket_key(BucketId(MUB, 0x12F)));
- EXPECT_EQ(0xF4, get_super_bucket_key(BucketId(MUB + 1, 0x12F)));
- EXPECT_EQ(0xF4, get_super_bucket_key(BucketId(MUB, 0x22F)));
- EXPECT_EQ(0xF4, get_super_bucket_key(BucketId(MUB + 1, 0x22F)));
-}
-
diff --git a/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp b/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp
index 59ccae58e67..630ad7685e4 100644
--- a/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp
+++ b/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp
@@ -1,22 +1,21 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <tests/common/testhelper.h>
#include <vespa/document/base/testdocman.h>
#include <vespa/document/repo/documenttyperepo.h>
#include <vespa/document/test/make_document_bucket.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/target.h>
#include <vespa/messagebus/testlib/slobrok.h>
-#include <vespa/persistence/spi/bucket_limits.h>
#include <vespa/slobrok/sbmirror.h>
-#include <vespa/storage/storageserver/communicationmanager.h>
-#include <vespa/storage/storageserver/message_dispatcher.h>
-#include <vespa/storage/storageserver/rpc/caching_rpc_target_resolver.h>
-#include <vespa/storage/storageserver/rpc/message_codec_provider.h>
-#include <vespa/storage/storageserver/rpc/shared_rpc_resources.h>
#include <vespa/storage/storageserver/rpc/storage_api_rpc_service.h>
+#include <vespa/storage/storageserver/rpc/shared_rpc_resources.h>
+#include <vespa/storage/storageserver/rpc/message_codec_provider.h>
+#include <vespa/storage/storageserver/rpc/caching_rpc_target_resolver.h>
+#include <vespa/storage/storageserver/communicationmanager.h>
#include <vespa/storage/storageserver/rpcrequestwrapper.h>
+#include <vespa/storage/storageserver/message_dispatcher.h>
#include <vespa/storageapi/message/persistence.h>
+#include <tests/common/testhelper.h>
#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/util/host_name.h>
#include <vespa/vespalib/util/stringfmt.h>
@@ -35,8 +34,6 @@ using namespace ::testing;
using namespace document::test;
using namespace std::chrono_literals;
-using storage::spi::BucketLimits;
-
namespace storage::rpc {
namespace {
@@ -164,8 +161,7 @@ public:
auto doc_type = _doc_type_repo->getDocumentType("testdoctype1");
auto doc = std::make_shared<document::Document>(*doc_type, document::DocumentId("id:foo:testdoctype1::bar"));
doc->setFieldValue(doc->getField("hstringval"), std::make_unique<document::StringFieldValue>("hello world"));
- return std::make_shared<api::PutCommand>
- (makeDocumentBucket(document::BucketId(BucketLimits::MinUsedBits, 0)), std::move(doc), 100);
+ return std::make_shared<api::PutCommand>(makeDocumentBucket(document::BucketId(0)), std::move(doc), 100);
}
void send_request_verify_not_bounced(std::shared_ptr<api::StorageCommand> req) {
diff --git a/storage/src/vespa/storage/common/bucket_utils.h b/storage/src/vespa/storage/common/bucket_utils.h
deleted file mode 100644
index d0dedfabcdb..00000000000
--- a/storage/src/vespa/storage/common/bucket_utils.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#pragma once
-
-#include <vespa/document/bucket/bucketid.h>
-#include <vespa/persistence/spi/bucket_limits.h>
-#include <cassert>
-
-namespace storage {
-
-/**
- * Returns the super bucket key of the given bucket id key based on the minimum used bits allowed.
- */
-inline uint64_t get_super_bucket_key(const document::BucketId& bucket_id) noexcept {
- assert(bucket_id.getUsedBits() >= spi::BucketLimits::MinUsedBits);
- // Since bucket keys have count-bits at the LSB positions, we want to look at the MSBs instead.
- return (bucket_id.toKey() >> (64 - spi::BucketLimits::MinUsedBits));
-}
-
-}
diff --git a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
index 4a5bbfec8c4..c465315a5a6 100644
--- a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
+++ b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
@@ -1,23 +1,22 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include "storage_api_rpc_service.h"
#include "caching_rpc_target_resolver.h"
#include "message_codec_provider.h"
-#include "rpc_envelope_proto.h"
#include "shared_rpc_resources.h"
-#include "storage_api_rpc_service.h"
+#include "rpc_envelope_proto.h"
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/target.h>
#include <vespa/slobrok/sbmirror.h>
-#include <vespa/storage/common/bucket_utils.h>
#include <vespa/storage/storageserver/communicationmanager.h>
#include <vespa/storage/storageserver/message_dispatcher.h>
#include <vespa/storage/storageserver/rpcrequestwrapper.h>
#include <vespa/storageapi/mbusprot/protocolserialization7.h>
#include <vespa/storageapi/messageapi/storagecommand.h>
#include <vespa/vespalib/data/databuffer.h>
-#include <vespa/vespalib/trace/tracelevel.h>
#include <vespa/vespalib/util/compressor.h>
#include <vespa/vespalib/util/stringfmt.h>
+#include <vespa/vespalib/trace/tracelevel.h>
#include <cassert>
#include <vespa/log/log.h>
@@ -221,8 +220,7 @@ void StorageApiRpcService::send_rpc_v1_request(std::shared_ptr<api::StorageComma
cmd->getType().getName().c_str(), cmd->getAddress()->toString().c_str());
assert(cmd->getAddress() != nullptr);
- auto target = _target_resolver->resolve_rpc_target(*cmd->getAddress(),
- get_super_bucket_key(cmd->getBucketId()));
+ auto target = _target_resolver->resolve_rpc_target(*cmd->getAddress(), cmd->getBucketId().getId());
if (!target) {
auto reply = cmd->makeReply();
reply->setResult(make_no_address_for_service_error(*cmd->getAddress()));