summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2017-10-05 13:12:39 +0000
committerTor Egge <Tor.Egge@oath.com>2017-10-05 13:12:39 +0000
commite158b6e614b4b6a1d4d4a03eeb68e590ddd46ed6 (patch)
tree126a0754fd9425b2b180568517c4fb6587b7b464
parentcf86d459aa9d3d136fd7b4d5de91429165b9a8c3 (diff)
Add BucketSpace parameter to listBuckets() and getModifiedBuckets() SPI
methods.
-rw-r--r--memfilepersistence/src/tests/spi/memfiletestutils.cpp3
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp4
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h4
-rw-r--r--persistence/src/vespa/persistence/conformancetest/conformancetest.cpp7
-rw-r--r--persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp4
-rw-r--r--persistence/src/vespa/persistence/dummyimpl/dummypersistence.h4
-rw-r--r--persistence/src/vespa/persistence/spi/abstractpersistenceprovider.cpp2
-rw-r--r--persistence/src/vespa/persistence/spi/abstractpersistenceprovider.h2
-rw-r--r--persistence/src/vespa/persistence/spi/metricpersistenceprovider.cpp8
-rw-r--r--persistence/src/vespa/persistence/spi/metricpersistenceprovider.h4
-rw-r--r--persistence/src/vespa/persistence/spi/persistenceprovider.h5
-rw-r--r--persistence/src/vespa/persistence/spi/test.cpp5
-rw-r--r--persistence/src/vespa/persistence/spi/test.h1
-rw-r--r--searchcore/src/apps/proton/downpersistence.cpp4
-rw-r--r--searchcore/src/apps/proton/downpersistence.h4
-rw-r--r--searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h4
-rw-r--r--storage/src/tests/persistence/common/persistenceproviderwrapper.cpp6
-rw-r--r--storage/src/tests/persistence/common/persistenceproviderwrapper.h2
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/modifiedbucketchecker.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/persistencethread.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.cpp8
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.h4
24 files changed, 55 insertions, 45 deletions
diff --git a/memfilepersistence/src/tests/spi/memfiletestutils.cpp b/memfilepersistence/src/tests/spi/memfiletestutils.cpp
index f8e182c1bcb..71a3e6a0999 100644
--- a/memfilepersistence/src/tests/spi/memfiletestutils.cpp
+++ b/memfilepersistence/src/tests/spi/memfiletestutils.cpp
@@ -14,6 +14,7 @@
using document::DocumentType;
using storage::spi::test::makeBucket;
+using storage::spi::test::makeBucketSpace;
namespace storage {
namespace memfile {
@@ -114,7 +115,7 @@ std::string
MemFileTestUtils::getModifiedBuckets()
{
spi::BucketIdListResult result(
- getPersistenceProvider().getModifiedBuckets());
+ getPersistenceProvider().getModifiedBuckets(makeBucketSpace()));
const spi::BucketIdListResult::List& list(result.getList());
std::ostringstream ss;
for (size_t i = 0; i < list.size(); ++i) {
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
index 09d1e46dc27..e75df3fc29f 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
@@ -411,7 +411,7 @@ MemFilePersistenceProvider::getPartitionStates() const
}
spi::BucketIdListResult
-MemFilePersistenceProvider::listBuckets(spi::PartitionId partition) const
+MemFilePersistenceProvider::listBuckets(BucketSpace, spi::PartitionId partition) const
{
spi::BucketIdListResult::List buckets;
_fileScanner->buildBucketList(buckets, partition, 0, 1);
@@ -419,7 +419,7 @@ MemFilePersistenceProvider::listBuckets(spi::PartitionId partition) const
}
spi::BucketIdListResult
-MemFilePersistenceProvider::getModifiedBuckets() const
+MemFilePersistenceProvider::getModifiedBuckets(BucketSpace) const
{
document::BucketId::List modified;
_env->swapModifiedBuckets(modified); // Atomic op
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
index 28af44c504e..f706fabc20c 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
@@ -41,8 +41,8 @@ public:
~MemFilePersistenceProvider();
spi::PartitionStateListResult getPartitionStates() const override;
- spi::BucketIdListResult listBuckets(spi::PartitionId) const override;
- spi::BucketIdListResult getModifiedBuckets() const override;
+ spi::BucketIdListResult listBuckets(BucketSpace bucketSpace, spi::PartitionId) const override;
+ spi::BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
spi::Result put(const spi::Bucket&, spi::Timestamp,
const spi::DocumentSP&, spi::Context&) override;
diff --git a/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp b/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
index 1ef8956d3d8..88dd475e6f6 100644
--- a/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
+++ b/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
@@ -18,6 +18,7 @@
using document::BucketId;
using storage::spi::test::makeBucket;
+using storage::spi::test::makeBucketSpace;
namespace storage::spi {
@@ -417,12 +418,12 @@ void ConformanceTest::testListBuckets() {
spi->flush(bucket3, context);
{
- BucketIdListResult result = spi->listBuckets(PartitionId(1));
+ BucketIdListResult result = spi->listBuckets(makeBucketSpace(), PartitionId(1));
CPPUNIT_ASSERT(result.getList().empty());
}
{
- BucketIdListResult result = spi->listBuckets(partId);
+ BucketIdListResult result = spi->listBuckets(makeBucketSpace(), partId);
const BucketIdListResult::List &bucketList = result.getList();
CPPUNIT_ASSERT_EQUAL(3u, (uint32_t)bucketList.size());
CPPUNIT_ASSERT(std::find(bucketList.begin(), bucketList.end(), bucketId1) != bucketList.end());
@@ -2119,7 +2120,7 @@ void ConformanceTest::testGetModifiedBuckets()
_factory->clear();
PersistenceProvider::UP spi(getSpi(*_factory, testDocMan));
CPPUNIT_ASSERT_EQUAL(0,
- (int)spi->getModifiedBuckets().getList().size());
+ (int)spi->getModifiedBuckets(makeBucketSpace()).getList().size());
}
void ConformanceTest::testBucketActivation()
diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
index 43e1e3e60a1..5c38679f52c 100644
--- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
+++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
@@ -341,7 +341,7 @@ DummyPersistence::getPartitionStates() const
BucketIdListResult
-DummyPersistence::listBuckets(PartitionId id) const
+DummyPersistence::listBuckets(BucketSpace, PartitionId id) const
{
DUMMYPERSISTENCE_VERIFY_INITIALIZED;
LOG(debug, "listBuckets(%u)", uint16_t(id));
@@ -363,7 +363,7 @@ DummyPersistence::setModifiedBuckets(const BucketIdListResult::List& buckets)
}
BucketIdListResult
-DummyPersistence::getModifiedBuckets() const
+DummyPersistence::getModifiedBuckets(BucketSpace) const
{
vespalib::MonitorGuard lock(_monitor);
return BucketIdListResult(_modifiedBuckets);
diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
index 19076f053eb..50a4562ea3b 100644
--- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
+++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
@@ -132,7 +132,7 @@ public:
~DummyPersistence();
PartitionStateListResult getPartitionStates() const override;
- BucketIdListResult listBuckets(PartitionId) const override;
+ BucketIdListResult listBuckets(BucketSpace bucketSpace, PartitionId) const override;
void setModifiedBuckets(const BucketIdListResult::List& result);
@@ -140,7 +140,7 @@ public:
* Returns the list set by setModifiedBuckets(), then clears
* the list.
*/
- BucketIdListResult getModifiedBuckets() const override;
+ BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
Result setClusterState(const ClusterState& newState) override;
Result setActiveState(const Bucket& bucket, BucketInfo::ActiveState newState) override;
diff --git a/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.cpp b/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.cpp
index 9e687f52363..5e6e908e042 100644
--- a/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.cpp
+++ b/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.cpp
@@ -43,7 +43,7 @@ AbstractPersistenceProvider::removeIfFound(const Bucket& b, Timestamp timestamp,
}
BucketIdListResult
-AbstractPersistenceProvider::getModifiedBuckets() const
+AbstractPersistenceProvider::getModifiedBuckets(BucketSpace) const
{
BucketIdListResult::List list;
return BucketIdListResult(list);
diff --git a/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.h b/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.h
index 461f31ad474..2460259cfe7 100644
--- a/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.h
+++ b/persistence/src/vespa/persistence/spi/abstractpersistenceprovider.h
@@ -64,7 +64,7 @@ public:
/**
* Default impl empty.
*/
- BucketIdListResult getModifiedBuckets() const override;
+ BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
/**
* Uses join by default.
diff --git a/persistence/src/vespa/persistence/spi/metricpersistenceprovider.cpp b/persistence/src/vespa/persistence/spi/metricpersistenceprovider.cpp
index 6f8600c7ca4..e338c76fb88 100644
--- a/persistence/src/vespa/persistence/spi/metricpersistenceprovider.cpp
+++ b/persistence/src/vespa/persistence/spi/metricpersistenceprovider.cpp
@@ -104,10 +104,10 @@ Impl::getPartitionStates() const
}
BucketIdListResult
-Impl::listBuckets(PartitionId v1) const
+Impl::listBuckets(BucketSpace bucketSpace, PartitionId v1) const
{
PRE_PROCESS(2);
- BucketIdListResult r(_next->listBuckets(v1));
+ BucketIdListResult r(_next->listBuckets(bucketSpace, v1));
POST_PROCESS(2, r);
return r;
}
@@ -250,10 +250,10 @@ Impl::deleteBucket(const Bucket& v1, Context& v2)
}
BucketIdListResult
-Impl::getModifiedBuckets() const
+Impl::getModifiedBuckets(BucketSpace bucketSpace) const
{
PRE_PROCESS(18);
- BucketIdListResult r(_next->getModifiedBuckets());
+ BucketIdListResult r(_next->getModifiedBuckets(bucketSpace));
POST_PROCESS(18, r);
return r;
}
diff --git a/persistence/src/vespa/persistence/spi/metricpersistenceprovider.h b/persistence/src/vespa/persistence/spi/metricpersistenceprovider.h
index 2a577f1234a..8ec2e2dd1bc 100644
--- a/persistence/src/vespa/persistence/spi/metricpersistenceprovider.h
+++ b/persistence/src/vespa/persistence/spi/metricpersistenceprovider.h
@@ -34,7 +34,7 @@ public:
// Implementation of the PersistenceProvider API
Result initialize() override;
PartitionStateListResult getPartitionStates() const override;
- BucketIdListResult listBuckets(PartitionId) const override;
+ BucketIdListResult listBuckets(BucketSpace bucketSpace, PartitionId) const override;
Result setClusterState(const ClusterState&) override;
Result setActiveState(const Bucket&, BucketInfo::ActiveState) override;
BucketInfoResult getBucketInfo(const Bucket&) const override;
@@ -51,7 +51,7 @@ public:
Result destroyIterator(IteratorId, Context&) override;
Result createBucket(const Bucket&, Context&) override;
Result deleteBucket(const Bucket&, Context&) override;
- BucketIdListResult getModifiedBuckets() const override;
+ BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
Result maintain(const Bucket&, MaintenanceLevel level) override;
Result split(const Bucket& source, const Bucket& target1, const Bucket& target2, Context&) override;
Result join(const Bucket& source1, const Bucket& source2, const Bucket& target, Context&) override;
diff --git a/persistence/src/vespa/persistence/spi/persistenceprovider.h b/persistence/src/vespa/persistence/spi/persistenceprovider.h
index 154a6c43469..b10ed618e88 100644
--- a/persistence/src/vespa/persistence/spi/persistenceprovider.h
+++ b/persistence/src/vespa/persistence/spi/persistenceprovider.h
@@ -59,6 +59,7 @@ namespace spi {
struct PersistenceProvider
{
typedef std::unique_ptr<PersistenceProvider> UP;
+ using BucketSpace = document::BucketSpace;
virtual ~PersistenceProvider();
@@ -84,7 +85,7 @@ struct PersistenceProvider
* Return list of buckets that provider has stored on the given partition.
* Typically called once per partition on startup.
*/
- virtual BucketIdListResult listBuckets(PartitionId) const = 0;
+ virtual BucketIdListResult listBuckets(BucketSpace bucketSpace, PartitionId) const = 0;
/**
* Updates the persistence provider with the last cluster state.
@@ -384,7 +385,7 @@ struct PersistenceProvider
* should clear it's list of modified buckets, so that the next call does
* not return the same buckets.
*/
- virtual BucketIdListResult getModifiedBuckets() const = 0;
+ virtual BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const = 0;
/**
* Allows the provider to do periodic maintenance and verification.
diff --git a/persistence/src/vespa/persistence/spi/test.cpp b/persistence/src/vespa/persistence/spi/test.cpp
index 73dd33f06bf..08ee060a52f 100644
--- a/persistence/src/vespa/persistence/spi/test.cpp
+++ b/persistence/src/vespa/persistence/spi/test.cpp
@@ -4,6 +4,11 @@
namespace storage::spi::test {
+document::BucketSpace makeBucketSpace()
+{
+ return document::BucketSpace::placeHolder();
+}
+
Bucket makeBucket(document::BucketId bucketId, PartitionId partitionId)
{
return Bucket(document::Bucket(document::BucketSpace::placeHolder(), bucketId), partitionId);
diff --git a/persistence/src/vespa/persistence/spi/test.h b/persistence/src/vespa/persistence/spi/test.h
index f3fc7b7f379..babc136cc81 100644
--- a/persistence/src/vespa/persistence/spi/test.h
+++ b/persistence/src/vespa/persistence/spi/test.h
@@ -8,6 +8,7 @@ namespace storage::spi::test {
// Helper functions used by unit tests
+document::BucketSpace makeBucketSpace();
Bucket makeBucket(document::BucketId bucketId, PartitionId partitionId);
Bucket makeBucket(document::BucketId bucketId);
diff --git a/searchcore/src/apps/proton/downpersistence.cpp b/searchcore/src/apps/proton/downpersistence.cpp
index b7fecb6aef1..4ee9a0635b0 100644
--- a/searchcore/src/apps/proton/downpersistence.cpp
+++ b/searchcore/src/apps/proton/downpersistence.cpp
@@ -38,7 +38,7 @@ DownPersistence::getPartitionStates() const
}
BucketIdListResult
-DownPersistence::listBuckets(PartitionId) const
+DownPersistence::listBuckets(BucketSpace, PartitionId) const
{
return BucketIdListResult(errorResult.getErrorCode(),
errorResult.getErrorMessage());
@@ -148,7 +148,7 @@ DownPersistence::deleteBucket(const Bucket&, Context&)
BucketIdListResult
-DownPersistence::getModifiedBuckets() const
+DownPersistence::getModifiedBuckets(BucketSpace) const
{
return BucketIdListResult(errorResult.getErrorCode(),
errorResult.getErrorMessage());
diff --git a/searchcore/src/apps/proton/downpersistence.h b/searchcore/src/apps/proton/downpersistence.h
index 61738a600de..9e64b89f065 100644
--- a/searchcore/src/apps/proton/downpersistence.h
+++ b/searchcore/src/apps/proton/downpersistence.h
@@ -28,7 +28,7 @@ public:
Result initialize() override;
PartitionStateListResult getPartitionStates() const override;
- BucketIdListResult listBuckets(PartitionId) const override;
+ BucketIdListResult listBuckets(BucketSpace bucketSpace, PartitionId) const override;
Result setClusterState(const ClusterState&) override;
Result setActiveState(const Bucket&, BucketInfo::ActiveState) override;
BucketInfoResult getBucketInfo(const Bucket&) const override;
@@ -47,7 +47,7 @@ public:
Result destroyIterator(IteratorId id, Context&) override;
Result createBucket(const Bucket&, Context&) override;
Result deleteBucket(const Bucket&, Context&) override;
- BucketIdListResult getModifiedBuckets() const override;
+ BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
Result maintain(const Bucket&, MaintenanceLevel level) override;
Result split(const Bucket& source, const Bucket& target1, const Bucket& target2, Context&) override;
Result join(const Bucket& source1, const Bucket& source2, const Bucket& target, Context&) override;
diff --git a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp
index 2e7e50c3464..97ff517821c 100644
--- a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp
+++ b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp
@@ -37,6 +37,7 @@ using storage::spi::Selection;
using storage::spi::Timestamp;
using storage::spi::UpdateResult;
using storage::spi::test::makeBucket;
+using storage::spi::test::makeBucketSpace;
using namespace proton;
using namespace vespalib;
@@ -592,8 +593,8 @@ TEST_F("require that listBuckets() is routed to handlers and merged", SimpleFixt
f.hset.handler2.bucketList.push_back(bckId2);
f.hset.handler2.bucketList.push_back(bckId3);
- EXPECT_TRUE(f.engine.listBuckets(PartitionId(1)).getList().empty());
- BucketIdListResult result = f.engine.listBuckets(partId);
+ EXPECT_TRUE(f.engine.listBuckets(makeBucketSpace(), PartitionId(1)).getList().empty());
+ BucketIdListResult result = f.engine.listBuckets(makeBucketSpace(), partId);
const BucketIdListResult::List &bucketList = result.getList();
EXPECT_EQUAL(3u, bucketList.size());
EXPECT_EQUAL(bckId1, bucketList[0]);
@@ -678,7 +679,7 @@ TEST_F("require that getModifiedBuckets() is routed to handlers and merged", Sim
f.hset.handler2.modBucketList.push_back(bckId2);
f.hset.handler2.modBucketList.push_back(bckId3);
- BucketIdListResult result = f.engine.getModifiedBuckets();
+ BucketIdListResult result = f.engine.getModifiedBuckets(makeBucketSpace());
const BucketIdListResult::List &bucketList = result.getList();
EXPECT_EQUAL(3u, bucketList.size());
EXPECT_EQUAL(bckId1, bucketList[0]);
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp
index 399b70f6c56..eaf163161b3 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp
@@ -282,7 +282,7 @@ PersistenceEngine::getPartitionStates() const
BucketIdListResult
-PersistenceEngine::listBuckets(PartitionId id) const
+PersistenceEngine::listBuckets(BucketSpace, PartitionId id) const
{
// Runs in SPI thread.
// No handover to write threads in persistence handlers.
@@ -592,7 +592,7 @@ PersistenceEngine::deleteBucket(const Bucket& b, Context&)
BucketIdListResult
-PersistenceEngine::getModifiedBuckets() const
+PersistenceEngine::getModifiedBuckets(BucketSpace) const
{
std::shared_lock<std::shared_timed_mutex> rguard(_rwMutex);
typedef BucketIdListResultV MBV;
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
index d8bbe0b3c0d..1204aab2fcf 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
@@ -109,7 +109,7 @@ public:
// Implements PersistenceProvider
virtual Result initialize() override;
virtual PartitionStateListResult getPartitionStates() const override;
- virtual BucketIdListResult listBuckets(PartitionId) const override;
+ virtual BucketIdListResult listBuckets(BucketSpace bucketSpace, PartitionId) const override;
virtual Result setClusterState(const ClusterState& calc) override;
virtual Result setActiveState(const Bucket& bucket, BucketInfo::ActiveState newState) override;
virtual BucketInfoResult getBucketInfo(const Bucket&) const override;
@@ -124,7 +124,7 @@ public:
virtual Result createBucket(const Bucket &bucketId, Context &) override ;
virtual Result deleteBucket(const Bucket&, Context&) override;
- virtual BucketIdListResult getModifiedBuckets() const override;
+ virtual BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
virtual Result split(const Bucket& source, const Bucket& target1, const Bucket& target2, Context&) override;
virtual Result join(const Bucket& source1, const Bucket& source2, const Bucket& target, Context&) override;
diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
index 52263b4c2b5..c804354b0ee 100644
--- a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
+++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
@@ -66,11 +66,11 @@ PersistenceProviderWrapper::getPartitionStates() const
}
spi::BucketIdListResult
-PersistenceProviderWrapper::listBuckets(spi::PartitionId partitionId) const
+PersistenceProviderWrapper::listBuckets(BucketSpace bucketSpace, spi::PartitionId partitionId) const
{
- LOG_SPI("listBuckets(" << uint16_t(partitionId) << ")");
+ LOG_SPI("listBuckets(" << bucketSpace.getId() << ", " << uint16_t(partitionId) << ")");
CHECK_ERROR(spi::BucketIdListResult, FAIL_LIST_BUCKETS);
- return _spi.listBuckets(partitionId);
+ return _spi.listBuckets(bucketSpace, partitionId);
}
spi::Result
diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.h b/storage/src/tests/persistence/common/persistenceproviderwrapper.h
index 955a23327f9..1f0dc93c44c 100644
--- a/storage/src/tests/persistence/common/persistenceproviderwrapper.h
+++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.h
@@ -87,7 +87,7 @@ public:
spi::Result createBucket(const spi::Bucket&, spi::Context&) override;
spi::PartitionStateListResult getPartitionStates() const override;
- spi::BucketIdListResult listBuckets(spi::PartitionId) const override;
+ spi::BucketIdListResult listBuckets(BucketSpace bucketSpace, spi::PartitionId) const override;
spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
spi::Result put(const spi::Bucket&, spi::Timestamp, const spi::DocumentSP&, spi::Context&) override;
spi::RemoveResult remove(const spi::Bucket&, spi::Timestamp, const spi::DocumentId&, spi::Context&) override;
diff --git a/storage/src/vespa/storage/persistence/filestorage/modifiedbucketchecker.cpp b/storage/src/vespa/storage/persistence/filestorage/modifiedbucketchecker.cpp
index 7735204c92b..d0002841bbd 100644
--- a/storage/src/vespa/storage/persistence/filestorage/modifiedbucketchecker.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/modifiedbucketchecker.cpp
@@ -120,7 +120,7 @@ ModifiedBucketChecker::onInternalReply(
bool
ModifiedBucketChecker::requestModifiedBucketsFromProvider()
{
- spi::BucketIdListResult result(_provider.getModifiedBuckets());
+ spi::BucketIdListResult result(_provider.getModifiedBuckets(document::BucketSpace::placeHolder()));
if (result.hasError()) {
LOG(debug, "getModifiedBuckets() failed: %s",
result.toString().c_str());
diff --git a/storage/src/vespa/storage/persistence/persistencethread.cpp b/storage/src/vespa/storage/persistence/persistencethread.cpp
index ff0bb378676..0ab512cd63f 100644
--- a/storage/src/vespa/storage/persistence/persistencethread.cpp
+++ b/storage/src/vespa/storage/persistence/persistencethread.cpp
@@ -463,7 +463,7 @@ PersistenceThread::handleReadBucketList(ReadBucketList& cmd)
_env._metrics.readBucketList,
_env._component.getClock()));
- spi::BucketIdListResult result(_spi.listBuckets(cmd.getPartition()));
+ spi::BucketIdListResult result(_spi.listBuckets(document::BucketSpace::placeHolder(), cmd.getPartition()));
if (checkForError(result, *tracker)) {
ReadBucketListReply::SP reply(new ReadBucketListReply(cmd));
result.getList().swap(reply->getBuckets());
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
index 80873829064..15b0a469b35 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
@@ -49,9 +49,9 @@ ProviderErrorWrapper::getPartitionStates() const
}
spi::BucketIdListResult
-ProviderErrorWrapper::listBuckets(spi::PartitionId partitionId) const
+ProviderErrorWrapper::listBuckets(BucketSpace bucketSpace, spi::PartitionId partitionId) const
{
- return checkResult(_impl.listBuckets(partitionId));
+ return checkResult(_impl.listBuckets(bucketSpace, partitionId));
}
spi::Result
@@ -164,9 +164,9 @@ ProviderErrorWrapper::deleteBucket(const spi::Bucket& bucket,
}
spi::BucketIdListResult
-ProviderErrorWrapper::getModifiedBuckets() const
+ProviderErrorWrapper::getModifiedBuckets(BucketSpace bucketSpace) const
{
- return checkResult(_impl.getModifiedBuckets());
+ return checkResult(_impl.getModifiedBuckets(bucketSpace));
}
spi::Result
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.h b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
index 84adf37cbc3..122837e75ed 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.h
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
@@ -43,7 +43,7 @@ public:
spi::Result initialize() override;
spi::PartitionStateListResult getPartitionStates() const override;
- spi::BucketIdListResult listBuckets(spi::PartitionId) const override;
+ spi::BucketIdListResult listBuckets(BucketSpace bucketSpace, spi::PartitionId) const override;
spi::Result setClusterState(const spi::ClusterState&) override;
spi::Result setActiveState(const spi::Bucket& bucket, spi::BucketInfo::ActiveState newState) override;
spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
@@ -59,7 +59,7 @@ public:
spi::Result destroyIterator(spi::IteratorId, spi::Context&) override;
spi::Result createBucket(const spi::Bucket&, spi::Context&) override;
spi::Result deleteBucket(const spi::Bucket&, spi::Context&) override;
- spi::BucketIdListResult getModifiedBuckets() const override;
+ spi::BucketIdListResult getModifiedBuckets(BucketSpace bucketSpace) const override;
spi::Result maintain(const spi::Bucket& bucket, spi::MaintenanceLevel level) override;
spi::Result split(const spi::Bucket& source, const spi::Bucket& target1, const spi::Bucket& target2, spi::Context&) override;
spi::Result join(const spi::Bucket& source1, const spi::Bucket& source2, const spi::Bucket& target, spi::Context&) override;