summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2021-05-26 08:30:51 +0000
committerTor Brede Vekterli <vekterli@verizonmedia.com>2021-05-26 08:30:51 +0000
commitb0ca08f3201ff28318c5ea445a19bf2814ab3798 (patch)
tree287a9da81439ba9bec870a8eba1d6dc6bb968cd2 /storage
parent6067d082653ab2994a80ccdaeca72bdf46e65e10 (diff)
Add a couple of stripe work TODOs
- Ideal state ops cannot look at null-bucket messages for determining if full bucket checks are pending when running in striped mode, as these are not handled by stripes when not in legacy mode. - State checker context should use ideal state cache instead of recomputing for every checked bucket (observed via `perf` in production).
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp3
-rw-r--r--storage/src/vespa/storage/distributor/statechecker.cpp1
2 files changed, 4 insertions, 0 deletions
diff --git a/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp b/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp
index 42d9e3d4a3d..142ff72bc79 100644
--- a/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp
+++ b/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp
@@ -185,6 +185,9 @@ public:
}
};
+// TODO STRIPE replace with check for pending cluster state transition.
+// Null-bucket messages are not intercepted nor observeable by stripes,
+// only by the top-level distributor.
bool
checkNullBucketRequestBucketInfoMessage(uint16_t node,
document::BucketSpace bucketSpace,
diff --git a/storage/src/vespa/storage/distributor/statechecker.cpp b/storage/src/vespa/storage/distributor/statechecker.cpp
index 82b8371e163..049e39fa3fc 100644
--- a/storage/src/vespa/storage/distributor/statechecker.cpp
+++ b/storage/src/vespa/storage/distributor/statechecker.cpp
@@ -79,6 +79,7 @@ StateChecker::Context::Context(const DistributorNodeContext& node_ctx_in,
db(distributorBucketSpace.getBucketDatabase()),
stats(statsTracker)
{
+ // TODO STRIPE use existing cache for computing ideal storage nodes for bucket
idealState = distribution.getIdealStorageNodes(systemState, bucket.getBucketId());
unorderedIdealState.insert(idealState.begin(), idealState.end());
}