summaryrefslogtreecommitdiffstats
path: root/persistence
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 /persistence
parentcf86d459aa9d3d136fd7b4d5de91429165b9a8c3 (diff)
Add BucketSpace parameter to listBuckets() and getModifiedBuckets() SPI
methods.
Diffstat (limited to 'persistence')
-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
10 files changed, 25 insertions, 17 deletions
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);