aboutsummaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead code from FileStorManager unit test.Tor Egge2023-08-311-27/+0
|
* Do not generate metrics at all for distributor, there are none.Henning Baldersheim2023-08-292-4/+5
|
* GC stor-bucket-init.defHenning Baldersheim2023-08-304-40/+0
|
* GC traces of messageforwarderHenning Baldersheim2023-08-303-7/+0
|
* GC stor-integritychecker configHenning Baldersheim2023-08-303-41/+0
|
* GC unused configHenning Baldersheim2023-08-303-40/+0
|
* Unify code layout and use autoHenning Baldersheim2023-08-291-139/+67
|
* Remove void statementHenning Baldersheim2023-08-291-1/+0
|
* Let node info for cluster controller be explicit, and not a metric consumer.Henning Baldersheim2023-08-2913-75/+150
|
* Modernize codeHenning Baldersheim2023-08-282-4/+4
|
* Remove incorrect _doneInitialized check.Henning Baldersheim2023-08-281-25/+20
|
* Add noexecptHenning Baldersheim2023-08-282-5/+5
|
* - Remove methods not used.Henning Baldersheim2023-08-282-72/+68
| | | | | - Remove parameters not used. - Make template parameter runtime parameter.
* Simplify spec SeqToSet definitionTor Brede Vekterli2023-08-241-3/+3
| | | | | | A sequence of length n is defined as a function whose domain is equal to 1..n (note: 1-indexing), so just use the domain directly instead of manually constructing the range.
* Merge pull request #28111 from vespa-engine/vekterli/minor-spec-simplificationsTor Brede Vekterli2023-08-231-5/+5
|\ | | | | Minor spec simplifications
| * Minor spec simplificationsTor Brede Vekterli2023-08-221-5/+5
| | | | | | | | | | | | | | | | - Nat (the set of natural numbers) is already present in Integers, so no need to extend Naturals. - Instead of computing cardinality of constant sets to verify that that the provided set has at least one element, just compare against the empty set.
* | Revert "Revert "Move condition variable notifications inside critical ↵Henning Baldersheim2023-08-221-6/+1
| | | | | | | | sections" MERGEOK"
* | Revert "Move condition variable notifications inside critical sections"Henning Baldersheim2023-08-221-1/+6
| |
* | Move condition variable notifications inside critical sectionsTor Brede Vekterli2023-08-221-6/+1
|/ | | | | | | | | | | | Opportunistic notifications outside lock may not properly (from the perspective of the memory model) synchronize visibility across threads. Observed by TSan during node shutdown when destruction of a `condition_variable` in a `Stripe` (from the main thread) was not properly synchronized with a broadcast on the same cond var that was previously done by an async result handling task (from a task executor thread), even though destruction is sequenced after first acquiring all the relevant locks.
* Merge pull request #28086 from ↵Tor Brede Vekterli2023-08-2232-89/+854
|\ | | | | | | | | vespa-engine/vekterli/distributor-operation-cancelling Implement edge-triggered distributor operation cancelling
| * Improve naming and make branching more obviousTor Brede Vekterli2023-08-214-18/+21
| |
| * Simplify `CancelScope` handling by moving out of optionalTor Brede Vekterli2023-08-214-31/+14
| |
| * Make partial cancellelation state part of the APITor Brede Vekterli2023-08-219-13/+16
| | | | | | | | | | Also rename factory function to avoid explicit coupling to higher level semantics.
| * Early return of empty node vector when fully canceledTor Brede Vekterli2023-08-211-0/+3
| |
| * Implement edge-triggered distributor operation cancellingTor Brede Vekterli2023-08-1832-89/+862
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Will be used for ensuring active operations do not mutate the bucket database upon completion with stale entries for buckets that may no longer be valid for that distributor to handle. Removes the need for today's "always-on" implicit checks for node state and bucket ownership upon every single DB update (which is potentially ABA-susceptible). Moving to edge-triggering is intentionally done to avoid ABA problems. Cancellation cases are: * Distributor ownership of bucket changed * Subset of target nodes has become unavailable Note: cancellation is not yet wired in; this code is cold.
* | Merge pull request #28098 from vespa-engine/toregge/include-stream-header-filesv8.215.17Tor Egge2023-08-215-0/+5
|\ \ | | | | | | Include sstream or ostream header file.
| * | Include sstream or ostream header file.Tor Egge2023-08-215-0/+5
| | |
* | | Use typename when needed for clang 15.Tor Egge2023-08-211-1/+1
|/ /
* / Reduce massive inlining of complex codeHenning Baldersheim2023-08-181-44/+61
|/
* Use a single level hash_map with a compund key.Henning Baldersheim2023-08-183-32/+25
|
* Put map lookup in one place.Henning Baldersheim2023-08-182-36/+33
|
* Extract highest value for both documentCount, totalDocumentCount, metaCount ↵Henning Baldersheim2023-08-183-44/+48
| | | | and usedFileSize in 1 iteration
* Move vectors, not copyHenning Baldersheim2023-08-184-26/+36
|
* Add noexceptHenning Baldersheim2023-08-182-3/+3
|
* Unify code layoutHenning Baldersheim2023-08-181-12/+10
|
* Merge pull request #28062 from vespa-engine/vekterli/post-review-changesHenning Baldersheim2023-08-167-15/+15
|\ | | | | Minor post-review changes
| * Take existing map size into account when resizing upTor Brede Vekterli2023-08-161-1/+1
| |
| * Use `std::span` with fixed extent instead of `ConstArrayRef`Tor Brede Vekterli2023-08-162-3/+3
| |
| * Rename destructive statistics read function to be more clear in its semanticsTor Brede Vekterli2023-08-164-11/+11
| |
* | Go back to vertical listing of long parameter lists.Henning Baldersheim2023-08-161-4/+9
| |
* | Rename methods to follow style in classHenning Baldersheim2023-08-165-13/+11
| |
* | GC last use of hasItem, and use lookup interface directly.Henning Baldersheim2023-08-1615-58/+50
| |
* | Check size before checking content.Henning Baldersheim2023-08-161-0/+1
| |
* | Drop number of anonymous namespaces by grouping related methods together.Henning Baldersheim2023-08-161-46/+34
| |
* | - Avoid going via a temporary IdealNodesList.Henning Baldersheim2023-08-1417-236/+253
|/ | | | | | | - Use ConstArrayRef to hide implementation. - Store all 3 node categories in a single vector. - Use a small_vector that can handle redundancy up to 5 without requiring extra memory allocation. - Build a hash_map if redundancy/groups > 32 for constant lookup time.
* When splitting a large number of nodes into their leaf groups you end up ↵Henning Baldersheim2023-08-111-18/+21
| | | | | | with many vectors with only a single node in them. Then it is more efficient to use a small_vector that keeps the 4 first entries within. Reduces # allocations and avoids indirection.
* Merge pull request #28023 from vespa-engine/balder/minor-layout-cleanupHenning Baldersheim2023-08-113-132/+45
|\ | | | | Minor code health.
| * Minor code health.Henning Baldersheim2023-08-103-132/+45
| |
* | Modern c++ for loop.Henning Baldersheim2023-08-103-37/+33
| |
* | Reduce use of default values in method callsHenning Baldersheim2023-08-106-146/+63
| |