summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2017-11-03 13:06:21 +0000
committerGeir Storli <geirst@oath.com>2017-11-03 13:06:21 +0000
commit19181418162c405a444cff4115a49be4cbd5b7b6 (patch)
tree3effa074403cada35613dd9fc89ad95ea3e845d3 /storage
parent2b74ce28ac3d356daf984e1574fe68039f230351 (diff)
Iterate all bucket spaces in FileStorManager::updateState().
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/common/content_bucket_space_repo.h8
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp21
2 files changed, 19 insertions, 10 deletions
diff --git a/storage/src/vespa/storage/common/content_bucket_space_repo.h b/storage/src/vespa/storage/common/content_bucket_space_repo.h
index 3dee0eee9bd..390cfc15f5d 100644
--- a/storage/src/vespa/storage/common/content_bucket_space_repo.h
+++ b/storage/src/vespa/storage/common/content_bucket_space_repo.h
@@ -26,6 +26,14 @@ public:
size_t getBucketMemoryUsage() const;
template <typename Functor>
+ void forEachBucket(Functor &functor,
+ const char *clientId) const {
+ for (const auto &elem : _map) {
+ elem.second->bucketDatabase().all(functor, clientId);
+ }
+ }
+
+ template <typename Functor>
void forEachBucketChunked(Functor &functor,
const char *clientId) const {
for (const auto &elem : _map) {
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
index f1daa42ca39..88a7343f8c8 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
@@ -2,20 +2,21 @@
#include "filestormanager.h"
-#include <vespa/storageapi/message/bucketsplitting.h>
-#include <vespa/storageapi/message/multioperation.h>
-#include <vespa/storageapi/message/persistence.h>
-#include <vespa/storageapi/message/removelocation.h>
-#include <vespa/storageapi/message/state.h>
+#include <vespa/storage/bucketdb/lockablemap.hpp>
#include <vespa/storage/common/bucketmessages.h>
+#include <vespa/storage/common/bucketoperationlogger.h>
+#include <vespa/storage/common/content_bucket_space_repo.h>
+#include <vespa/storage/common/messagebucket.h>
#include <vespa/storage/config/config-stor-server.h>
+#include <vespa/storage/persistence/bucketownershipnotifier.h>
#include <vespa/storage/persistence/persistencethread.h>
#include <vespa/storage/storageutil/log.h>
-#include <vespa/storage/common/messagebucket.h>
-#include <vespa/storage/persistence/bucketownershipnotifier.h>
#include <vespa/storageapi/message/batch.h>
-#include <vespa/storage/common/bucketoperationlogger.h>
-#include <vespa/storage/bucketdb/lockablemap.hpp>
+#include <vespa/storageapi/message/bucketsplitting.h>
+#include <vespa/storageapi/message/multioperation.h>
+#include <vespa/storageapi/message/persistence.h>
+#include <vespa/storageapi/message/removelocation.h>
+#include <vespa/storageapi/message/state.h>
#include <vespa/vespalib/stllike/hash_map.hpp>
#include <vespa/vespalib/util/stringfmt.h>
@@ -974,7 +975,7 @@ FileStorManager::updateState()
if (_nodeUpInLastNodeStateSeenByProvider && !nodeUp) {
LOG(debug, "Received cluster state where this node is down; de-activating all buckets in database");
Deactivator deactivator;
- _component.getBucketDatabase(BucketSpace::placeHolder()).all(deactivator, "FileStorManager::updateState");
+ _component.getBucketSpaceRepo().forEachBucket(deactivator, "FileStorManager::updateState");
}
_provider->setClusterState(spiState);
_nodeUpInLastNodeStateSeenByProvider = nodeUp;