diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-08-08 14:46:24 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-08-08 14:46:24 +0000 |
commit | c9206e7881979b5d2e2a0265e6d483677cb0d7dd (patch) | |
tree | 92571f78ac018588d4d0af00e1e4bbd2039eeabe | |
parent | b0e64927bc95abe3587262084dd57fbb3ef038e4 (diff) |
Use vespalib hash_set since it is significantly faster and than std::unordered_set
6 files changed, 8 insertions, 8 deletions
diff --git a/storage/src/vespa/storage/distributor/maintenance/maintenancescanner.h b/storage/src/vespa/storage/distributor/maintenance/maintenancescanner.h index 4fec2e57cbc..e4ccb6d88ad 100644 --- a/storage/src/vespa/storage/distributor/maintenance/maintenancescanner.h +++ b/storage/src/vespa/storage/distributor/maintenance/maintenancescanner.h @@ -32,8 +32,6 @@ public: }; virtual ScanResult scanNext() = 0; - - virtual void reset() = 0; }; } diff --git a/storage/src/vespa/storage/distributor/maintenance/simplemaintenancescanner.h b/storage/src/vespa/storage/distributor/maintenance/simplemaintenancescanner.h index a867d4a5267..cf6622f03b0 100644 --- a/storage/src/vespa/storage/distributor/maintenance/simplemaintenancescanner.h +++ b/storage/src/vespa/storage/distributor/maintenance/simplemaintenancescanner.h @@ -50,7 +50,7 @@ public: ~SimpleMaintenanceScanner(); ScanResult scanNext() override; - void reset() override; + void reset(); // TODO: move out into own interface! void prioritizeBucket(const document::Bucket &id); diff --git a/storage/src/vespa/storage/distributor/statechecker.cpp b/storage/src/vespa/storage/distributor/statechecker.cpp index eaff1f0b780..27a60b73716 100644 --- a/storage/src/vespa/storage/distributor/statechecker.cpp +++ b/storage/src/vespa/storage/distributor/statechecker.cpp @@ -4,6 +4,7 @@ #include "distributor_stripe_component.h" #include <vespa/vdslib/distribution/distribution.h> #include <vespa/vdslib/state/clusterstate.h> +#include <vespa/vespalib/stllike/hash_set_insert.hpp> #include <vespa/log/log.h> LOG_SETUP(".distributor.statechecker"); diff --git a/storage/src/vespa/storage/distributor/statechecker.h b/storage/src/vespa/storage/distributor/statechecker.h index 348d90bc712..830e05676be 100644 --- a/storage/src/vespa/storage/distributor/statechecker.h +++ b/storage/src/vespa/storage/distributor/statechecker.h @@ -6,7 +6,7 @@ #include <vespa/storage/distributor/operations/idealstate/idealstateoperation.h> #include <vespa/storage/common/storagecomponent.h> #include <vespa/storage/bucketdb/bucketdatabase.h> -#include <unordered_set> +#include <vespa/vespalib/stllike/hash_set.h> #include <map> #include <set> @@ -74,7 +74,7 @@ public: // well as have the ability to quickly check if a node is in an ideal // location. std::vector<uint16_t> idealState; - std::unordered_set<uint16_t> unorderedIdealState; + vespalib::hash_set<uint16_t> unorderedIdealState; const DistributorNodeContext& node_ctx; const DistributorStripeOperationContext& op_ctx; diff --git a/storage/src/vespa/storage/distributor/statecheckers.cpp b/storage/src/vespa/storage/distributor/statecheckers.cpp index f9c26bf113e..fe1f4422c45 100644 --- a/storage/src/vespa/storage/distributor/statecheckers.cpp +++ b/storage/src/vespa/storage/distributor/statecheckers.cpp @@ -856,9 +856,8 @@ SynchronizeAndMoveStateChecker::check(Context& c) const result += checkIfBucketsAreOutOfSyncAndNeedMerging(c); if (result.shouldMerge()) { - IdealStateOperation::UP op( - new MergeOperation(BucketAndNodes(c.getBucket(), result.nodes()), - c.distributorConfig.getMaxNodesPerMerge())); + auto op = std::make_unique<MergeOperation>(BucketAndNodes(c.getBucket(), result.nodes()), + c.distributorConfig.getMaxNodesPerMerge()); op->setDetailedReason(result.reason()); MaintenancePriority::Priority schedPri; if ((c.getBucketSpace() == document::FixedBucketSpaces::default_space()) diff --git a/vespalib/src/vespa/vespalib/stllike/hash_set.cpp b/vespalib/src/vespa/vespalib/stllike/hash_set.cpp index 8812af426bf..54614329a97 100644 --- a/vespalib/src/vespa/vespalib/stllike/hash_set.cpp +++ b/vespalib/src/vespa/vespalib/stllike/hash_set.cpp @@ -6,6 +6,8 @@ namespace vespalib { } +VESPALIB_HASH_SET_INSTANTIATE(int16_t); +VESPALIB_HASH_SET_INSTANTIATE(uint16_t); VESPALIB_HASH_SET_INSTANTIATE(int32_t); VESPALIB_HASH_SET_INSTANTIATE(uint32_t); VESPALIB_HASH_SET_INSTANTIATE(uint64_t); |