summaryrefslogtreecommitdiffstats
path: root/persistence
diff options
context:
space:
mode:
Diffstat (limited to 'persistence')
-rw-r--r--persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp15
-rw-r--r--persistence/src/vespa/persistence/dummyimpl/dummypersistence.h4
2 files changed, 19 insertions, 0 deletions
diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
index b7acde31c4f..a58adec5011 100644
--- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
+++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
@@ -359,6 +359,21 @@ DummyPersistence::setModifiedBuckets(const BucketIdListResult::List& buckets)
_modifiedBuckets = buckets;
}
+void DummyPersistence::set_fake_bucket_set(const std::vector<std::pair<Bucket, BucketInfo>>& fake_info) {
+ std::lock_guard lock(_monitor);
+ _content.clear();
+ for (auto& info : fake_info) {
+ const auto& bucket = info.first;
+ // DummyPersistence currently only supports default bucket space
+ assert(bucket.getBucketSpace() == FixedBucketSpaces::default_space());
+ auto bucket_content = std::make_shared<BucketContent>();
+ bucket_content->getMutableBucketInfo() = info.second;
+ // Must tag as up to date, or bucket info will be recomputed implicitly from zero state in getBucketInfo
+ bucket_content->setOutdatedInfo(false);
+ _content[bucket] = std::move(bucket_content);
+ }
+}
+
BucketIdListResult
DummyPersistence::getModifiedBuckets(BucketSpace bucketSpace) const
{
diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
index 5d49127a937..a7827b2c218 100644
--- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
+++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.h
@@ -144,6 +144,10 @@ public:
void setModifiedBuckets(const BucketIdListResult::List& result);
+ // Important: any subsequent mutations to the bucket set in fake_info will reset
+ // the bucket info due to implicit recalculation of bucket info.
+ void set_fake_bucket_set(const std::vector<std::pair<Bucket, BucketInfo>>& fake_info);
+
/**
* Returns the list set by setModifiedBuckets(), then clears
* the list.