diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2021-05-26 08:30:51 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2021-05-26 08:30:51 +0000 |
commit | b0ca08f3201ff28318c5ea445a19bf2814ab3798 (patch) | |
tree | 287a9da81439ba9bec870a8eba1d6dc6bb968cd2 /storage/src | |
parent | 6067d082653ab2994a80ccdaeca72bdf46e65e10 (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/src')
-rw-r--r-- | storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp | 3 | ||||
-rw-r--r-- | storage/src/vespa/storage/distributor/statechecker.cpp | 1 |
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()); } |