Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #22445 from ↵ | Henning Baldersheim | 2022-05-05 | 3 | -4/+32 |
|\ | | | | | | | | | vespa-engine/vekterli/atomic-visitor-queue-size-read Expose a relaxed atomic view of visitor queue size and use it for metric callback | ||||
| * | Expose a relaxed atomic view of visitor queue size and use it for metric ↵ | Tor Brede Vekterli | 2022-05-04 | 3 | -4/+32 |
| | | | | | | | | | | | | callback Avoids having to take a mutex that may potentially trigger lock order inversion | ||||
* | | GC unused metrics | Henning Baldersheim | 2022-05-03 | 2 | -8/+1 |
|/ | |||||
* | Revert "Add lock around visitor queue size read during metric snapshot callback" | Tor Egge | 2022-05-03 | 1 | -1/+0 |
| | |||||
* | Make StorageNode stop-request flag atomic | Tor Brede Vekterli | 2022-05-03 | 2 | -5/+10 |
| | | | | Also change requestShutdown() to be safe in the face of concurrent calls. | ||||
* | Add lock around visitor queue size read during metric snapshot callback | Tor Brede Vekterli | 2022-05-03 | 1 | -0/+1 |
| | | | | Mutex should have very little contention in the common case. | ||||
* | Re-acquire state lock before checking if any fields were set by the state ↵ | Tor Brede Vekterli | 2022-05-02 | 1 | -2/+3 |
| | | | | listener | ||||
* | Add debug logging when receiving bucket info for a single requested bucket | Tor Brede Vekterli | 2022-04-29 | 1 | -0/+2 |
| | |||||
* | Thread-safe distribution change propagation in top level distributor component | Tor Brede Vekterli | 2022-04-29 | 3 | -12/+13 |
| | |||||
* | Make MinimumUsedBitsTracker thread safe for both reads and writes | Tor Brede Vekterli | 2022-04-28 | 1 | -13/+22 |
| | |||||
* | Merge pull request #22180 from ↵ | Tor Brede Vekterli | 2022-04-22 | 1 | -0/+1 |
|\ | | | | | | | | | vespa-engine/vekterli/add-doc-selection-support-for-literal-bool-values Add document selection support for literal bool values [run-systemtest] | ||||
| * | Support boolean literals in subexpressions for C++ document selection, not ↵ | Tor Brede Vekterli | 2022-04-20 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | just as expression leaves Adds a new `BoolValueNode` type and the appropriate AST visiting overloads for it. For the sake of comparisons, node is treated as a numeric value node with value in {0, 1}. | ||||
* | | Make dynamic throttling and shared field writer default in config def files. | Geir Storli | 2022-04-20 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #22105 from vespa-engine/arnej/just-new-config-files | Henning Baldersheim | 2022-04-12 | 2 | -216/+259 |
|\ | | | | | switch to new-style config | ||||
| * | switch to new-style config | Arne H Juul | 2022-04-12 | 2 | -216/+259 |
| | | |||||
* | | remove FastOS_Application | Håvard Pettersen | 2022-04-08 | 1 | -17/+16 |
|/ | | | | | | | | fixup (per application): - maybe ignore SIGPIPE - wire argc/argv untangle Vespa Test Framework strip down deprecated TestApp | ||||
* | Add missing include statements. Check for atomic wait support. | Tor Egge | 2022-04-05 | 2 | -0/+2 |
| | |||||
* | GC unused Context parameter | Henning Baldersheim | 2022-03-31 | 18 | -241/+161 |
| | |||||
* | Minor simplifications after PR feedback. | Henning Baldersheim | 2022-03-29 | 1 | -1/+1 |
| | |||||
* | Remove copy constructors. | Henning Baldersheim | 2022-03-28 | 4 | -71/+36 |
| | |||||
* | Use both lvalue and rvalue specifier to avoid explicit std::move() | Henning Baldersheim | 2022-03-28 | 4 | -12/+9 |
| | |||||
* | Avoid the need for clone by using unique_ptr. | Henning Baldersheim | 2022-03-28 | 4 | -8/+6 |
| | |||||
* | Avoid need to copy/clone FieldUpdate | Henning Baldersheim | 2022-03-27 | 4 | -14/+6 |
| | |||||
* | Use vespalib::string in TestAndSetCondition | Tor Brede Vekterli | 2022-03-24 | 1 | -1/+1 |
| | | | | | Avoids some implicit conversions. Add `starts_with` to `vespalib::string` and `vespalib::stringref` to allow drop-in replacement for Document API code. | ||||
* | Revert "Use vespalib::string in TestAndSetCondition" | Tor Brede Vekterli | 2022-03-24 | 1 | -1/+1 |
| | |||||
* | Use vespalib::string in TestAndSetCondition | Tor Brede Vekterli | 2022-03-24 | 1 | -1/+1 |
| | | | | | Avoids some implicit conversions. Add `starts_with` to `vespalib::string` and `vespalib::stringref` to allow drop-in replacement for Document API code. | ||||
* | Clean up and refactor visitor management code | Tor Brede Vekterli | 2022-03-18 | 5 | -118/+101 |
| | |||||
* | Fix visitor manager test TSan mutex inversion warning and refactor deadline ↵ | Tor Brede Vekterli | 2022-03-18 | 6 | -60/+76 |
| | | | | | | | | | | | | | handling Defer starting main message dispatch thread until test has enqueued a message that will be immediately timed out. Avoids having to depend on taking an internal mutex in the test to prevent racing with queue handoffs. Taking said mutex triggered a mutex order inversion warning in TSan. Also refactor visitor queue deadline handling by moving to a strongly typed time point. This removes some manual unit scaling arithmetic that did not appear to be entirely correct in the first place. | ||||
* | Add comment with rationale for using atomic value updates instead of tree ↵ | Tor Brede Vekterli | 2022-03-14 | 1 | -0/+10 |
| | | | | thawing/freezing | ||||
* | Make B-tree bucket database values atomic to ensure well-defined access | Tor Brede Vekterli | 2022-03-11 | 3 | -24/+98 |
| | | | | | | | | | | | | | Existing implementation already used explicit acquire/release fences to ensure visibility from writer to concurrent readers, but the values written/read were not of an atomic type and thus _technically_ considered a data race. This commit adds an AtomicValueWrapper wrapper to vespalib which looks and acts much like the existing AtomicEntryRef, but for primitive types that are not related to EntryRefs. The bucket DB B-tree primitive u64 value type is replaced with an atomic wrapper and explicit memory fences are replaced with release stores and acquire loads on the atomic values themselves to ensure they form correct pairs between writer and readers. | ||||
* | Reduce exposure of SymbolTable, Stash and other classes not necessary for ↵ | Henning Baldersheim | 2022-03-10 | 1 | -0/+1 |
| | | | | users of Slime. | ||||
* | Move BucketIdListResult | Henning Baldersheim | 2022-03-09 | 2 | -2/+2 |
| | |||||
* | Reduce visibility of document::Document | Henning Baldersheim | 2022-03-07 | 14 | -44/+33 |
| | |||||
* | Reduce use of Identifiable for document::DatatType | Henning Baldersheim | 2022-03-03 | 10 | -2/+16 |
| | |||||
* | Check cluster-wide state inside lock to match state write | Tor Brede Vekterli | 2022-03-03 | 1 | -1/+3 |
| | |||||
* | Merge pull request #21477 from ↵ | Henning Baldersheim | 2022-03-01 | 4 | -18/+22 |
|\ | | | | | | | | | vespa-engine/balder/use-wait_until-to-reduce-need-for-sampling-time Use wait_until and a deadline instead of a timeout. | ||||
| * | timeout_end -> deadline | Henning Baldersheim | 2022-03-01 | 4 | -10/+10 |
| | | |||||
| * | Use wait_until and a deadline instead of a timeout. | Henning Baldersheim | 2022-03-01 | 4 | -18/+22 |
| | | | | | | | | This reduces the need to smaple the time significantly. | ||||
* | | Make reconfiguring dynamic vs unlimited throttling not require restarting | Tor Brede Vekterli | 2022-03-01 | 6 | -35/+52 |
|/ | | | | | | | | | | | | Instead of having one abstract throttler created from bootstrap config, explicitly create one dynamic and one unlimited throttler and allow for atomically switching between the two based on received config. The `MergeHandler` component will now always fetch the current throttler from the `FileStorHandler` instead of caching it at construction time. This commit removes the `restart` annotation on the existing throttler type config enums. | ||||
* | Add a simple adjustTimeoutByDetectedHz to compute a suitable timeout/naptime ↵ | Henning Baldersheim | 2022-02-28 | 2 | -2/+2 |
| | | | | | | based on base VESPA_TIMER_HZ to use for random waiting when doing a poll based appraoch. | ||||
* | Merge pull request #21408 from ↵ | Tor Brede Vekterli | 2022-02-28 | 6 | -2/+55 |
|\ | | | | | | | | | vespa-engine/vekterli/fix-storage-slobrok-threading-edge-cases Gracefully flush pending Slobrok task on content node RPC teardown [run-systemtest] | ||||
| * | Explicitly wait for cross-node Slobrok visibility in test instead of sleeping | Tor Brede Vekterli | 2022-02-28 | 5 | -2/+50 |
| | | | | | | | | | | | | | | Prior code had an ad-hoc (and undocumented) sleep that would hopefully delay the rest of the test until there was mutual Slobrok visibility, but which was not guaranteed and usually over-pessimized. Replace with explicit checks of Slobrok mirrors. | ||||
| * | Gracefully flush pending Slobrok task on content node RPC teardown | Tor Brede Vekterli | 2022-02-25 | 1 | -0/+5 |
| | | | | | | | | | | Avoids race between transport connection destruction in one FNET thread and processing unregistration task in another FNET thread. | ||||
* | | Remove inlining warnings (storage). | Tor Egge | 2022-02-26 | 1 | -0/+3 |
|/ | |||||
* | Sync executor to ensure tasks are run prior to stripe teardowns in tests | Tor Brede Vekterli | 2022-02-25 | 1 | -2/+11 |
| | |||||
* | Revert "Revert "- Create the common transport and threadpool in the main loop."" | Henning Baldersheim | 2022-02-24 | 1 | -1/+1 |
| | |||||
* | Revert "- Create the common transport and threadpool in the main loop." | Henning Baldersheim | 2022-02-24 | 1 | -1/+1 |
| | |||||
* | Merge pull request #21376 from ↵ | Tor Brede Vekterli | 2022-02-24 | 8 | -9/+52 |
|\ | | | | | | | | | vespa-engine/vekterli/configurable-per-merge-feed-op-throttling Make it possible to configure what aspects of merges should be throttled [run-systemtest] | ||||
| * | Make it possible to configure what aspects of merges should be throttled | Tor Brede Vekterli | 2022-02-24 | 8 | -9/+52 |
| | | | | | | | | | | | | | | | | | | | | Add live config for choosing whether merges should be throttled on a per-feed operation (`MergeHandler`) level, or on an `ApplyBucketDiff` persistence thread level. This is intended to be a temporary feature while we do experiments, so some liberties are taken with regards to how holes are punched in the various abstraction layers. | ||||
* | | - Create the common transport and threadpool in the main loop. | Henning Baldersheim | 2022-02-24 | 1 | -1/+1 |
|/ | | | | | - Also use the common transport for config subscriptions. - Put The TransportConfig in the fnet namespace. |