summaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* use separate lock for statsHåvard Pettersen2022-05-242-6/+25
|
* use cached queue size for metrics to avoid lock inversionHåvard Pettersen2022-05-232-5/+24
|
* Fold fastlib into vespalib and gc some unused code.Henning Baldersheim2022-05-211-1/+0
| | | | Also move some code only used by juniper up into juniper test module.
* hold lock while modifying merge states mapHåvard Pettersen2022-05-201-2/+6
|
* Merge pull request #22683 from ↵Håvard Pettersen2022-05-201-2/+4
|\ | | | | | | | | vespa-engine/havardpe/wait-for-locks-to-be-released-when-deleting-file-stor-handler-impl wait for locks to be released in the destructor
| * hold lock while notifying during final touchHåvard Pettersen2022-05-201-1/+0
| |
| * wait for locks to be released in the destructorHåvard Pettersen2022-05-201-1/+4
| |
* | Fold staging_vespalib into vespalibHenning Baldersheim2022-05-202-4/+3
| |
* | read cluster state while holding lockHåvard Pettersen2022-05-202-11/+11
|/ | | | | will also avoid error messages like 'message discarded due to cluster being UP'
* Fold storageapi into storage.Henning Baldersheim2022-05-19105-2/+11537
|
* Merge pull request #22662 from ↵Tor Brede Vekterli2022-05-191-1/+0
|\ | | | | | | | | vespa-engine/havardpe/delay-slobrok-register-destruction delay destruction of the slobrok register component
| * delay destruction of the slobrok register componentHåvard Pettersen2022-05-191-1/+0
| |
* | Depend on storage instead of storageframeworkHenning Baldersheim2022-05-182-2/+2
| |
* | Collapse storageframework back into storage.Henning Baldersheim2022-05-1872-1/+3371
|/
* Merge pull request #22640 from ↵Henning Baldersheim2022-05-181-2/+2
|\ | | | | | | | | vespa-engine/balder/move-from-staging-vespalib-too-vespalib Move state_server, metrivs and some all executors from staging_vespal…
| * Move state_server, metrivs and some all executors from staging_vespalib too ↵Henning Baldersheim2022-05-181-2/+2
| | | | | | | | vespalib.
* | We only need to expose a single libstorage.so. No need to split up in ↵Henning Baldersheim2022-05-186-16/+14
|/ | | | storage storgae_storageserver and storage_distributor.
* - Move persitence/spi/types.h under to persitence/spi/types.hHenning Baldersheim2022-05-182-2/+2
| | | | - Cut dependency to persistencetypes for searchlib.
* Ensure stripe pool threads vector is fully visible to all started stripesTor Brede Vekterli2022-05-162-2/+3
|
* Remove disabled unit test that triggered compiler warningsTor Egge2022-05-161-42/+0
| | | | (gcc 12 on aarch64 platform).
* Merge pull request #22445 from ↵Henning Baldersheim2022-05-053-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 Vekterli2022-05-043-4/+32
| | | | | | | | | | | | callback Avoids having to take a mutex that may potentially trigger lock order inversion
* | GC unused metricsHenning Baldersheim2022-05-032-8/+1
|/
* Revert "Add lock around visitor queue size read during metric snapshot callback"Tor Egge2022-05-031-1/+0
|
* Make StorageNode stop-request flag atomicTor Brede Vekterli2022-05-032-5/+10
| | | | Also change requestShutdown() to be safe in the face of concurrent calls.
* Add lock around visitor queue size read during metric snapshot callbackTor Brede Vekterli2022-05-031-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 Vekterli2022-05-021-2/+3
| | | | listener
* Add debug logging when receiving bucket info for a single requested bucketTor Brede Vekterli2022-04-291-0/+2
|
* Thread-safe distribution change propagation in top level distributor componentTor Brede Vekterli2022-04-293-12/+13
|
* Make MinimumUsedBitsTracker thread safe for both reads and writesTor Brede Vekterli2022-04-281-13/+22
|
* Merge pull request #22180 from ↵Tor Brede Vekterli2022-04-221-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 Vekterli2022-04-201-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 Storli2022-04-201-1/+1
|/
* Merge pull request #22105 from vespa-engine/arnej/just-new-config-filesHenning Baldersheim2022-04-122-216/+259
|\ | | | | switch to new-style config
| * switch to new-style configArne H Juul2022-04-122-216/+259
| |
* | remove FastOS_ApplicationHåvard Pettersen2022-04-081-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 Egge2022-04-052-0/+2
|
* GC unused Context parameterHenning Baldersheim2022-03-3118-241/+161
|
* Minor simplifications after PR feedback.Henning Baldersheim2022-03-291-1/+1
|
* Remove copy constructors.Henning Baldersheim2022-03-284-71/+36
|
* Use both lvalue and rvalue specifier to avoid explicit std::move()Henning Baldersheim2022-03-284-12/+9
|
* Avoid the need for clone by using unique_ptr.Henning Baldersheim2022-03-284-8/+6
|
* Avoid need to copy/clone FieldUpdateHenning Baldersheim2022-03-274-14/+6
|
* Use vespalib::string in TestAndSetConditionTor Brede Vekterli2022-03-241-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 Vekterli2022-03-241-1/+1
|
* Use vespalib::string in TestAndSetConditionTor Brede Vekterli2022-03-241-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 codeTor Brede Vekterli2022-03-185-118/+101
|
* Fix visitor manager test TSan mutex inversion warning and refactor deadline ↵Tor Brede Vekterli2022-03-186-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 Vekterli2022-03-141-0/+10
| | | | thawing/freezing
* Make B-tree bucket database values atomic to ensure well-defined accessTor Brede Vekterli2022-03-113-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.