aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #16935 from ↵Henning Baldersheim2021-03-157-39/+45
|\ | | | | | | | | vespa-engine/revert-16934-revert-16932-balder/move-metrics-from-partition-to-node-level Revert "Revert "GC unused DiskState and add the partition metrics to node level.""
| * Include metrics always.Henning Baldersheim2021-03-121-27/+0
| |
| * Revert "Revert "GC unused DiskState and add the partition metrics to node ↵Henning Baldersheim2021-03-127-12/+45
| | | | | | | | level.""
* | Ensure Import-Package for javax packages are included in bundle's manifestBjørn Christian Seime2021-03-151-0/+7
|/
* Revert "GC unused DiskState and add the partition metrics to node level."Harald Musum2021-03-127-45/+12
|
* GC unused DiskState and add the partition metrics to node level.Henning Baldersheim2021-03-127-12/+45
|
* GC unused importHenning Baldersheim2021-03-122-2/+0
|
* Merge pull request #16926 from ↵Tor Brede Vekterli2021-03-126-98/+177
|\ | | | | | | | | vespa-engine/vekterli/dont-store-full-bundle-objects-in-state-history Don't store full bundle objects in state history
| * Add missing copyrightTor Brede Vekterli2021-03-121-0/+1
| |
| * Move config output further down on the status pageTor Brede Vekterli2021-03-121-2/+2
| | | | | | | | | | Always print regardless of leader eligibility state; config is not predicated on this.
| * Move ZK/election-related info away from top of CC status pageTor Brede Vekterli2021-03-121-2/+2
| | | | | | | | | | Much less immediately interesting than the actual cluster node information. Move it just above the general event log instead.
| * Don't store full bundle objects in cluster state historyTor Brede Vekterli2021-03-126-94/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | Bundles have a lot of sub-objects per state, so in systems with a high amount of node entries, this adds unnecessary pressure on the heap. Instead, store the string representations of the bundle and the string representation of the diff to the previous state version (if any). This is also inherently faster than computing the diffs on-demand on every status page render. Also remove mutable `official` field from `ClusterState`. Not worth violating immutability of an object just to get some prettier (but with high likelihood actually more confusing) status page rendering.
* | Revert "GC unused DiskState"Arnstein Ressem2021-03-1210-7/+180
|/
* Merge pull request #16911 from vespa-engine/balder/gc-disk-statesHenning Baldersheim2021-03-1210-180/+7
|\ | | | | GC unused DiskState
| * GC PartitionHenning Baldersheim2021-03-111-12/+0
| |
| * GC unused DiskStateHenning Baldersheim2021-03-119-168/+7
| |
* | Merge pull request #16900 from vespa-engine/bjorncs/zookeeper-client-commonBjørn Christian Seime2021-03-122-10/+16
|\ \ | |/ |/| Add shared ZK client config generator for zkfacade and vespa-zkcli [run-systemtest]
| * Construct ZKClientConfig from ZkClientConfigBuilderBjørn Christian Seime2021-03-112-10/+16
| | | | | | | | Use ZKClientConfig builder from Curator and ZooKeeperDatabase
* | GC use of void DiskState.Henning Baldersheim2021-03-115-65/+9
| |
* | GC use of NodeState.getDiskCount and NodeState.getDiskStates.Henning Baldersheim2021-03-115-74/+11
| |
* | GC long gone disk state checks.Henning Baldersheim2021-03-111-1/+6
| |
* | Shrink the size of the NodeState object by using float over double for ↵Henning Baldersheim2021-03-114-29/+29
|/ | | | initProgress and capacity. Also gc unused 'reliability' member.
* Remove com.yahoo.vespa.jdk8compatBjørn Christian Seime2021-03-101-5/+4
| | | | These types are often accidentally imported, and the JDK8 replacement is typically a one-liner.
* Merge pull request #16856 from ↵Tor Brede Vekterli2021-03-091-3/+20
|\ | | | | | | | | vespa-engine/vekterli/immediately-exit-cc-if-node-index-changed-live Immediately exit cluster controller if node index config is changed live
| * Immediately exit cluster controller if node index config is changed liveTor Brede Vekterli2021-03-091-3/+20
| | | | | | | | | | We do not support live reconfigs of CC index, so swiftly exit if we detect this, allowing the config sentinel to restart the service.
* | Merge pull request #16843 from vespa-engine/bjorncs/upgrade-zk-clientBjørn Christian Seime2021-03-091-0/+6
|\ \ | |/ |/| Bjorncs/upgrade zk client [run-systemtest]
| * Depend on zookeeper-server-commonBjørn Christian Seime2021-03-091-0/+6
| | | | | | | | Ensure extra required ZK dependencies are present on test classpath
* | Fix typoTor Brede Vekterli2021-03-081-1/+1
| |
* | Better handling of ZK connectivity issues concurrent with electionsTor Brede Vekterli2021-03-083-28/+59
|/ | | | | | | | | | | | | | | | | Adds the following safeguards/improvements: - Do not clear pending (non-persisted) writes over a `connect()` edge. Avoids having the controller eternally wait for a doomed pending write to be completed when it has no other events that can trigger a new write. - Trigger `lostDatabaseConnection()` whenever ZK is reconfigured to ensure we reload the newest state before trying to compute/publish any new states. - Explicitly drop leadership in `lostDatabaseConnection()` to immediately prevent controller from trying any funny leader-related business since it no longer can depend on ZK watches triggering. - When falling back to default state/cluster bundle, ensure that any subsequent dependent znode write is predicated on the pre-existing znode version being 0, i.e. did not previously exist.
* Print node index wihtout parenthesis as done elsewhereHarald Musum2021-03-032-7/+7
|
* Merge pull request #16747 from ↵Geir Storli2021-03-024-5/+39
|\ | | | | | | | | vespa-engine/geirst/cluster-controller-resouce-usage-limits-metrics Expose resource usage metrics for disk and memory limits for feed blo…
| * Expose resource usage metrics for disk and memory limits for feed blocked.Geir Storli2021-03-024-5/+39
| |
* | Only force CC metric update when you are the bossJon Marius Venstad2021-03-021-1/+1
|/
* Use (override, really) the clusterid dimension in CCs content metricsJon Marius Venstad2021-03-022-2/+4
|
* Do not use vespamalloc for clustercontroller as it is pure java.Henning Baldersheim2021-03-011-2/+10
|
* Only compute feed blocked state from available nodesTor Brede Vekterli2021-02-263-2/+45
| | | | | Available nodes here mean nodes that are reported as Up/Initializing and where the wanted state is Up/Retired.
* Pass current ZK-persisted version directly to broadcast method instead of ↵Tor Brede Vekterli2021-02-263-39/+22
| | | | indirectly
* Enforce that no cluster state can be published unless confirmed written to ↵Tor Brede Vekterli2021-02-265-4/+73
| | | | | | | | | | | | | | | | | ZooKeeper This avoids a subtle edge case where the underlying ZK integration code may fail silently a write, leaving the core controller logic to think that it had actually durably persisted a particular state version. In case of reelections racing with broadcasts, it would be possible for leader-edge readbacks from ZK to retrieve a _lower_ version than one that had already been published. This would cause the cluster controller to get very confused about which cluster states nodes had already observed. If a newly produced state version overlapped with a previously broadcast state, the controller would not push the updated state to the nodes, as it would (with good reason) assume the node had already observed it, seeing that it had already ACKed the particular version number.
* Remove unused aguments and methodsHarald Musum2021-02-2112-112/+32
|
* Mincor cleanup, no functional changsHarald Musum2021-02-2144-247/+174
|
* Remove unused code, and fix docJon Marius Venstad2021-02-191-2/+2
|
* Other nodes not being up should not hinder permanently downHåkon Hallingstad2021-02-191-5/+0
|
* Fail safe maintenance if other nodes are not upHåkon Hallingstad2021-02-194-88/+52
|
* Avoid stripping index of node that was missingJon Marius Venstad2021-02-171-1/+1
|
* Merge pull request #16494 from ↵Håkon Hallingstad2021-02-123-14/+55
|\ | | | | | | | | vespa-engine/hakonhall/also-deny-maintenance-when-another-node-is-in-maintenance Also deny maintenance when another node is in maintenance
| * Add testHåkon Hallingstad2021-02-122-11/+49
| |
| * Also deny maintenance when another node is in maintenanceHåkon Hallingstad2021-02-122-4/+7
| | | | | | | | | | | | | | The cluster controller today already denies setting a node X safely to maintenance M, if there is another node Y in another group that has wanted state M. Which means that if Y is in M but wanted state is not M, X is allowed to be set in M. This is an edge case which is rare.
* | enableSmallBuffers -> useSmallBuffersHenning Baldersheim2021-02-122-2/+2
| |
* | Use small buffers where size matters more than speed.Henning Baldersheim2021-02-122-2/+3
| |
* | Support configurable feed block hysteresis on the cluster controllerTor Brede Vekterli2021-02-108-11/+171
|/ | | | | | | | | | | | | | | | | | | Adds an absolute number delta that is subtracted from the feed block limit when a node has a resource already in feed blocked state. This means that there's a lower watermark threshold that must be crossed before feeding can be unblocked. Avoids flip-flopping between block states. Default is currently 0.0, i.e. effectively disabled. To be modified later for system tests and trial roll-outs. A couple of caveats with the current implementation: * The cluster state is not recomputed automatically when just the hysteresis threshold is crossed, so the description will be out of date on the content nodes. However, if any other feed block event happens (or the hysteresis threshold is crossed), the state will be recomputed as expected. This does not affect correctness, since the feed is still to be blocked. * A node event remove/add pair is emitted for feed block status when the hysteresis threshold is crossed and there's a cluster state recomputation.