diff options
author | Geir Storli <geirst@oath.com> | 2017-11-03 13:06:21 +0000 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2017-11-03 13:06:21 +0000 |
commit | 19181418162c405a444cff4115a49be4cbd5b7b6 (patch) | |
tree | 3effa074403cada35613dd9fc89ad95ea3e845d3 /storage | |
parent | 2b74ce28ac3d356daf984e1574fe68039f230351 (diff) |
Iterate all bucket spaces in FileStorManager::updateState().
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/vespa/storage/common/content_bucket_space_repo.h | 8 | ||||
-rw-r--r-- | storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp | 21 |
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; |