aboutsummaryrefslogtreecommitdiffstats
path: root/persistence
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Revert "Balder/refactor docentry""Henning Baldersheim2022-01-0711-230/+320
|
* Revert "Balder/refactor docentry"Arnstein Ressem2022-01-0711-320/+230
|
* - Flags -> Enum.Henning Baldersheim2022-01-067-71/+65
| | | | - Consistently use DocEntryList as type for std::vector<spi::DocEntry::UP>
* Only care about size of payload. Also add payload containing only doctype ↵Henning Baldersheim2022-01-066-30/+74
| | | | and gid
* Use enum class for the flags.Henning Baldersheim2022-01-066-47/+44
|
* Simplify by avoid both DocumentSize and PersistedDocumentSize. That is the same.Henning Baldersheim2022-01-067-164/+153
|
* Simplify DocEntry to get a clean interface with multiple implementations, ↵Henning Baldersheim2022-01-0610-90/+156
| | | | | | instead of an mutant. Also add tests for the different variations a DocEntry can have.
* Declare noexcept move constructor and assignment for storage::spi::Result.Tor Egge2021-12-112-0/+4
|
* more descriptive name for header fileArne H Juul2021-12-021-1/+1
|
* track namespace move in documenttypes.defArne H Juul2021-12-022-4/+2
| | | | | | | * For C++ code this introduces a "document::config" namespace, which will sometimes conflict with the global "config" namespace. * Move all forward-declarations of the types DocumenttypesConfig and DocumenttypesConfigBuilder to a common header file.
* Handle case where bucket spaces have differing maintenance state for a nodeTor Brede Vekterli2021-11-243-25/+29
| | | | | | | | | | | Only skip deactivating buckets if the entire _node_ is marked as maintenance state, i.e. the node has maintenance state across all bucket spaces provided in the bundle. Otherwise treat the state transition as if the node goes down, deactivating all buckets. Also ensure that the bucket deactivation logic above the SPI is identical to that within Proton. This avoids bucket DBs getting out of sync between the two.
* Continue serving search queries when in Maintenance node stateTor Brede Vekterli2021-11-243-10/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, entering maintenance state would implicitly deactivate all buckets on the searchnode and cause empty responses to be returned for searches. However, container query dispatch uses async health pings to decide which nodes to route queries to, so it would be possible for a node to still be used for queries for a few seconds until the ping discovered that the node should not be used. In the case of multiple groups without multiple ready replicas within the group, this would cause transient coverage loss since the dispatcher would not realize it should route queries to other groups instead. With this commit, maintenance edge behavior is changed as follows: - Buckets are _not_ deactivated when going from an available state to the maintenance state. However, they _are_ deactivate when going from maintenance state to an available state in order to avoid transient query duplicates immediately after the change. - Searches are executed as normal instead of returning empty replies when the node is in maintenance state. The following behavior is intentionally _not_ changed: - The search interface is still marked as offline when in maintenance state, as this signals that the node should be taken out of rotation. In particular, it's critical that the RPC health ping response is explicitly tagged as having zero active docs when the search interface is offline, even though many buckets may now actually be active. Otherwise, queries would not be gracefully drained from the node.
* Revert "Continue serving search queries when in Maintenance node state ↵Henning Baldersheim2021-11-233-58/+18
| | | | [run-systemtest]"
* Handle case where bucket spaces have differing maintenance state for a nodeTor Brede Vekterli2021-11-233-25/+29
| | | | | | | | | | | Only skip deactivating buckets if the entire _node_ is marked as maintenance state, i.e. the node has maintenance state across all bucket spaces provided in the bundle. Otherwise treat the state transition as if the node goes down, deactivating all buckets. Also ensure that the bucket deactivation logic above the SPI is identical to that within Proton. This avoids bucket DBs getting out of sync between the two.
* Continue serving search queries when in Maintenance node stateTor Brede Vekterli2021-11-223-10/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, entering maintenance state would implicitly deactivate all buckets on the searchnode and cause empty responses to be returned for searches. However, container query dispatch uses async health pings to decide which nodes to route queries to, so it would be possible for a node to still be used for queries for a few seconds until the ping discovered that the node should not be used. In the case of multiple groups without multiple ready replicas within the group, this would cause transient coverage loss since the dispatcher would not realize it should route queries to other groups instead. With this commit, maintenance edge behavior is changed as follows: - Buckets are _not_ deactivated when going from an available state to the maintenance state. However, they _are_ deactivate when going from maintenance state to an available state in order to avoid transient query duplicates immediately after the change. - Searches are executed as normal instead of returning empty replies when the node is in maintenance state. The following behavior is intentionally _not_ changed: - The search interface is still marked as offline when in maintenance state, as this signals that the node should be taken out of rotation. In particular, it's critical that the RPC health ping response is explicitly tagged as having zero active docs when the search interface is offline, even though many buckets may now actually be active. Otherwise, queries would not be gracefully drained from the node.
* Let removeAsync handle list of documents.Henning Baldersheim2021-11-187-28/+68
|
* Move removeLocation over to Asynchandler and issue all removes for one ↵Henning Baldersheim2021-11-171-17/+17
| | | | | | bucket before waiting for the replies. Prepare RemoveResult to contain more replies.
* Adjust dummy persistence spi semantics towards proton spi semantics whenTor Egge2021-10-274-36/+96
| | | | | bucket doesn't exist: setActiveState(), put(), remove() creates bucket if it doesn't already exist.
* Adjust dummy persistence spi semantics towards proton spi semantics whenTor Egge2021-10-253-7/+56
| | | | | | | bucket doesn't exist: * getBucketInfo() returns success with empty bucket info * createIterator() returns success * iterate() returns empty complete result.
* Undo auto formatHenning Baldersheim2021-10-251-230/+217
|
* create/delete bucket will never throw.Henning Baldersheim2021-10-254-247/+244
|
* Async createBucketHenning Baldersheim2021-10-255-6/+14
|
* Add noexcept specifier to operation complete callback.Tor Egge2021-10-223-3/+3
|
* Only keep async variant to simplify what to implement and what fallback ↵Henning Baldersheim2021-10-186-130/+63
| | | | there are.
* Implement async delete bucket.Henning Baldersheim2021-10-186-31/+20
|
* Make setActiveState async.Henning Baldersheim2021-10-176-10/+24
|
* Factor out CatchResultHenning Baldersheim2021-10-154-19/+49
|
* Revert "- Refactor and use CatchResult in the PersistenceEngine in ↵Henning Baldersheim2021-10-154-49/+19
| | | | preparatio…"
* - Refactor and use CatchResult in the PersistenceEngine in preparation for ↵Henning Baldersheim2021-10-154-19/+49
| | | | making more moretaions async.
* Update Verizon Media copyright notices.gjoranv2021-10-0713-13/+13
|
* Update 2017 copyright notices.gjoranv2021-10-0742-42/+42
|
* Report max address space used in attribute vector components from content ↵Geir Storli2021-08-203-13/+9
| | | | | | | nodes (proton) to the cluster controller. This is more generic than explicit address space values for enum store and multi value. This is used in the cluster controller to determine whether to block external feed.
* Add copyright headersJon Bratseth2021-03-181-0/+1
|
* Abandon gcc 8 support.Tor Egge2021-03-181-4/+2
|
* Remove notion of node-specific reliability from C++ distribution codeTor Brede Vekterli2021-03-021-2/+1
| | | | | I have never seen this in use anywhere, and can find no code that ever sets it. Bonus is that node candidate trimming can be vastly simplified.
* - Change error handling so that both synchonous and asynchronous errors can ↵Henning Baldersheim2021-02-234-16/+23
| | | | | | | | be reported back from bucket executor. - Treat remapping as an error. - For lidspace compaction job iterator is reset and will be recreated on next invocation. - For bucketmove th ebucket is rechecked and either discarded or restarted.
* string.h does not need alloc.hHenning Baldersheim2021-02-212-0/+2
|
* Use a helper for bool -> vespalib::TrinaryHenning Baldersheim2021-02-191-7/+11
|
* Use a trinary to also handle temporary mismatching bucket used bits.Henning Baldersheim2021-02-193-14/+23
|
* - Reduce visibility of ClusterState and Distribution.Henning Baldersheim2021-02-192-10/+1
|
* Merge pull request #16495 from vespa-engine/arnej/add-size-literalsArne H Juul2021-02-161-14/+15
|\ | | | | add literals for sizes in KB, MB, and GB
| * use size literals in persistenceArne Juul2021-02-151-14/+15
| |
* | An explicit copy assignment is needed when an explicit copy constructor isTor Egge2021-02-162-0/+14
| | | | | | | | declared, to avoid deprecated-copy warning.
* | Eliminate inlining warning.Tor Egge2021-02-162-0/+4
|/
* Remove the sync interface from Bucket Executor. Due to the nature of ↵Henning Baldersheim2021-02-023-10/+5
| | | | | | requiring a bucket lock it is very hard to get sync to work in a safe way. Instead the users must do their own accounting as they know their own threading model.
* Add noexcept and some other minor code health.Henning Baldersheim2021-02-021-4/+4
|
* Revert "Properly track execution of BucketTasks and provide sync() and ↵Henning Baldersheim2021-02-021-4/+4
| | | | order… "
* Properly track execution of BucketTasks and provide sync() and orderly shutdown.Henning Baldersheim2021-02-021-4/+4
|
* Revert "Implement BucketExecutor::sync."Henning Baldersheim2021-02-021-4/+4
|
* Implement BucketExecutor::sync.Henning Baldersheim2021-02-011-4/+4
|