diff options
Diffstat (limited to 'persistence')
-rw-r--r-- | persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp | 15 | ||||
-rw-r--r-- | persistence/src/vespa/persistence/dummyimpl/dummypersistence.h | 4 |
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. |