diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-12-03 12:57:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-03 12:57:13 +0100 |
commit | 815ad79317d9d308dbe8ffdc50899fc7901aace9 (patch) | |
tree | 427d0921ad6ea7e489964b78e57ea081fada9aa1 /storage | |
parent | e65a3c0549b9858325d303ae4a0eb02055204155 (diff) |
Revert "Use the super bucket key when resolving which RPC target to use to ha…"
Diffstat (limited to 'storage')
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())); |