aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/tests/storageserver/statemanagertest.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix typoTor Brede Vekterli6 days1-1/+1
|
* Handle cluster state bundle with distribution config on content nodeTor Brede Vekterli7 days1-10/+113
| | | | | | | | | | | | | If a cluster state bundle contains distribution config, this is internally propagated via the `StateManager` component to all registered state listeners. One such state listener is `FileStorManager`, which updates the content node-internal bucket space repository. All `SetSystemStateCommand` and internal config-aware components (`StateManager` and `ChangedBucketOwnershipHandler`) now explicitly track whether the cluster controller provides distribution config, or if the internally provided config should be used (including fallback to internal config if necessary).
* Support enforcing strictly increasing state versions across cluster controllersTor Brede Vekterli2024-06-031-28/+98
| | | | | | | | | | | | | | | | | Adds a (live) config that specifies if content nodes and distributors shall reject cluster state versions that are lower than the one that is currently active on the node. This prevents "last write wins" ordering problems when multiple cluster controllers have partially overlapping leadership periods. In the name of pragmatism, we try to auto-detect the case where ZooKeeper state must have been lost on the cluster controller cluster, and accept the state even with lower version number. Otherwise, the content cluster would be effectively stalled until all its processes had been manually restarted. Adds wiring of live config to the `StateManager` component on both content and distributor nodes.
* Remove usages of deprecated DirConfig in storage unit testsTor Brede Vekterli2024-05-151-5/+9
| | | | | | Introduce a distinct `StorageConfigSet` which wraps the actual underlying config objects and exposes them through a unified `ConfigUri`.
* Update copyrightJon Bratseth2023-10-091-1/+1
|
* Let node info for cluster controller be explicit, and not a metric consumer.Henning Baldersheim2023-08-291-8/+3
|
* Deinline large destructors and clean up some code based on clion hints.Henning Baldersheim2023-02-011-4/+7
|
* Make internal cluster/node state propagation noexceptTor Brede Vekterli2022-11-251-1/+1
| | | | | It is not well defined what to do if an implementation of the propagation callback throws, so make it noexcept to core the process if it does happen.
* Remove StateManager handling of deprecated Initializing stateTor Brede Vekterli2022-09-261-3/+3
| | | | | | | Neither distributors nor content nodes ever report their state as Initializing as part of their startup sequence; they go straight from Down to Up. Remove complicated init progress delta reporting that is no longer needed.
* Make host info cluster state version reporting correct for deferred state ↵Tor Brede Vekterli2022-01-031-26/+73
| | | | | | | | | | | | | | | | | | | | | bundles If an application uses deferred cluster state activations, do not report back a given cluster state version as being in use by the node until the state version has been explicitly activated by the cluster controller. This change is due to the fact that the replication invalidation happens upon recovery mode entry, and for deferred state bundles this takes place when a cluster state is _activated_, not when the distributor is otherwise done gathering bucket info (for a non-deferred bundle the activation happens implicitly at this point). If the state manager reports that the new cluster state is in effect even though it has not been activated, the cluster controller could still end up using stale replication stats, as the invalidation logic has not yet run at this point in time. The cluster controller will ignore any host info responses for older versions, so any stale replication statistics should not be taken into account with this change.
* Update 2017 copyright notices.gjoranv2021-10-071-1/+1
|
* - Reduce visibility of ClusterState and Distribution.Henning Baldersheim2021-02-191-0/+1
|
* Add ServiceLayerHostInfoReporter.Tor Egge2021-01-201-0/+15
|
* GC disk related code.Henning Baldersheim2020-10-151-1/+1
|
* timeout as durationHenning Baldersheim2019-12-041-2/+2
| | | | | Conflicts: messagebus/src/vespa/messagebus/testlib/testserver.cpp
* Convert storageserver and visiting tests from CppUnit to GTestTor Brede Vekterli2019-06-141-156/+122
|
* Properly handle non-owned vs. missing bucketsTor Brede Vekterli2019-03-151-3/+27
| | | | | | | | Bonus: no more spurious "we have removed buckets" log messages caused by ownership changes. Also ensure that we BUSY-bounce operations in `ExternalOperationHandler` when there is no actual state to send back in a `WrongDistributionReply`.
* Make test names less ambiguousTor Brede Vekterli2018-04-261-6/+6
|
* Handle explicit node state response case without pending requestTor Brede Vekterli2018-04-261-11/+77
| | | | | | | | | | | | | Deals with the edge case where a node explicitly triggers a node state response to be sent (generally due to updated host info to the controller(s)) but where there is no pending request to immediately reply to. We now maintain state per controller which lets us infer whether it needs to immediately observe a reply when the next request is received for it. This avoids having to wait for an entire RPC timeout cycle before a response is sent to the controller. This feature is predominantly to avoid keeping nodes in the default bucket space in implicit maintenance mode for longer than is necessary when merges in the global space are completed.
* Expose StateManager method to immediately send GetNodeState repliesTor Brede Vekterli2018-03-141-5/+27
|
* Add cluster state to content bucket space.Tor Egge2018-03-131-1/+1
|
* Move ClusterStateBundle to vdslib, allowing it to be used outsideTor Egge2018-02-221-1/+1
| | | | storage module.
* Add cluster state bundle which contains a baseline cluster state andTor Egge2018-02-221-3/+4
| | | | (later) a derived cluster state for each bucket space.
* Update copyright headersJon Bratseth2017-06-141-1/+1
|
* Revert "Update copyright headers"Jon Bratseth2017-06-141-1/+1
|
* Update copyright headersJon Bratseth2017-06-141-1/+1
|
* Revert "Copyright header"Jon Bratseth2017-06-131-1/+1
|
* Copyright headerJon Bratseth2017-06-131-1/+1
|
* Deinline as compiler makes the best choices.Henning Baldersheim2017-05-091-0/+1
|
* - Optimize includes.Henning Baldersheim2017-04-251-7/+1
| | | | | - Move htmltable code to implementation file and add add override. - No virtual on override.
* Revert "Balder/enforce override 2"Arne H Juul2017-04-241-1/+7
|
* Including storage now builds fine with override enforcement.Henning Baldersheim2017-04-231-7/+1
|
* add override in storage testsArne H Juul2017-04-111-3/+3
|
* use new input/output model in slimeHaavard2017-02-031-1/+1
|
* decouple slime from config.Henning Baldersheim2016-12-191-4/+2
|
* PublishJon Bratseth2016-06-151-0/+264