summaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #25562 from ↵Tor Brede Vekterli2023-01-131-3/+5
|\ | | | | | | | | vespa-engine/balder/make-lock-release-thread-safe-again Move the checks to the safe section.
| * Move the checks to the safe section.Henning Baldersheim2023-01-131-3/+5
| |
* | Use 2 rpc targets and 2 rpc network threads.Henning Baldersheim2023-01-131-2/+2
|/
* Notify outside lock.Henning Baldersheim2023-01-121-1/+6
| | | | | - Notify all if exclusive lock. - Notify one if no more shared locks.
* No need to notify anyone when you grab a bucket lock. Nobody will be allowed ↵Henning Baldersheim2023-01-121-4/+1
| | | | to do anything anyway.
* Drop the lock before notifyingHenning Baldersheim2023-01-121-3/+8
|
* Notify only one, and hold the lock if you did not get anything to dispatch.Henning Baldersheim2023-01-121-4/+1
|
* Revert "No need to notify if bucket is already locked"Henning Baldersheim2023-01-121-1/+8
|
* We can only handle unconditional async messages in network thread.Henning Baldersheim2023-01-128-17/+9
|
* When you add a message to the Q you will at most provide work for 1 ↵Henning Baldersheim2023-01-121-6/+4
| | | | persistence thread.
* Merge pull request #25537 from ↵Henning Baldersheim2023-01-121-8/+1
|\ | | | | | | | | vespa-engine/balder/no-need-to-notify-if-bucket-is-locked No need to notify if bucket is already locked
| * No need to notify if bucket is already lockedHenning Baldersheim2023-01-121-8/+1
| |
* | Update test to reflect new defaultHenning Baldersheim2023-01-121-2/+1
| |
* | Also switch default in def file.Henning Baldersheim2023-01-121-1/+1
|/
* Place some memory traps across various size classesTor Brede Vekterli2023-01-113-2/+13
|
* reduce usage of default values.Henning Baldersheim2023-01-061-8/+7
|
* Merge pull request #25323 from vespa-engine/balder/move-close-prior-to-joinHenning Baldersheim2022-12-211-2/+3
|\ | | | | Move close() call up between interrupt() and join().
| * Move close() call up between interrupt() and join().Henning Baldersheim2022-12-211-2/+3
| | | | | | | | That enables faster join since close will wake up the interrupted threads.
* | Change from typedef to using in storage C++ code.Geir Storli2022-12-2149-104/+104
|/
* Add debug logging to storagelinkHenning Baldersheim2022-12-213-3/+7
|
* Reduce includes not neededHenning Baldersheim2022-12-216-5/+1
|
* Do not wait for register to do any reconnect. Just wait 10ms, before ↵Henning Baldersheim2022-12-211-5/+4
| | | | comencing shutdown.
* Reduce nap from 50ms to 10msHenning Baldersheim2022-12-201-1/+1
|
* Add debug logging to StorageLink::closeHenning Baldersheim2022-12-201-0/+2
|
* Remove stacksize from the thread pools and thread executors.Henning Baldersheim2022-12-208-16/+19
|
* Misc cleanup and formatting of distributor codeTor Brede Vekterli2022-12-15100-675/+454
| | | | No functional changes
* Move MessageGuard out to storage/common sub-libraryTor Brede Vekterli2022-12-158-48/+60
|
* Add MBus trace entry when no replicas are found for a document bucketTor Brede Vekterli2022-12-131-7/+14
|
* Merge pull request #25199 from ↵Tor Brede Vekterli2022-12-091-1/+3
|\ | | | | | | | | vespa-engine/vekterli/propagate-update-internal-doc-repo-to-auto-created-doc Propagate doc repo in update to auto-created blank document instance [run-systemtest]
| * Propagate doc repo in update to auto-created blank document instanceTor Brede Vekterli2022-12-091-1/+3
| |
* | Avoid nullptr memcpy argument in protocol serialization.Tor Egge2022-12-091-2/+6
|/
* Improve error response when trying to use an imported field in a conditionTor Brede Vekterli2022-12-082-1/+21
| | | | | | | | | | | We don't support using imported fields in conditional mutations, so catch attempts at doing this during the field enumeration that is done as part of the condition evaluation. Would previously get an internal error response with an ugly stack trace since the exception would propagate up to a generic exception-to-response handler. Will now generate an `ILLEGAL_PARAMETERS` error response with a hopefully helpful error message.
* Add metric tracking internal `StateManager` state propagation latencyTor Brede Vekterli2022-12-082-0/+24
| | | | | | | | Adds a new top-level metric set with the single metric ``` vds.state_manager.invoke_state_listeners_latency ``` which tracks the latency for invoking the set of all state listeners.
* Limit to 1 response thread in test configTor Brede Vekterli2022-12-011-0/+1
| | | | Avoids any potential surprises caused by reply reordering in tests.
* GC old config valuesTor Brede Vekterli2022-12-011-40/+0
|
* Defer MBus DestinationSession registration during content node initTor Brede Vekterli2022-11-291-0/+9
| | | | | | | | | | | | | Creating a `DestinationSession` that is immediately registered as available for business means we may theoretically start receiving messages over the session even before the call returns to the caller. Either way there would be no memory barrier that ensures that `_messageBusSession` would be fully visible to the MessageBus threads (since it's written after return). To avoid this sneaky scenario, defer registration (and thus introduce a barrier) until _after_ we've initialized our internal member variables. This addresses a TSan warning.
* Be more explicit about previous GC timestamp in testTor Brede Vekterli2022-11-281-0/+3
|
* Avoid mass pending GC on config enable edgeTor Brede Vekterli2022-11-285-6/+136
| | | | | | | | | | | | If a system is running in a stable state with no GC enabled, per-bucket last GC timestamps in the DB will end up further and further in the past. If GC is then enabled in config, we must ensure that GC timestamps are reset to the current time to avoid suddenly ending up with _every single_ bucket having exceeded its GC deadline, causing pending GC en masse. Resetting is edge-triggered, so it should not happen if GC is enabled in both the old and new configs.
* Merge pull request #24999 from ↵Henning Baldersheim2022-11-258-9/+9
|\ | | | | | | | | vespa-engine/vekterli/make-internal-state-propagation-noexcept Make internal cluster/node state propagation noexcept
| * Make internal cluster/node state propagation noexceptTor Brede Vekterli2022-11-258-9/+9
| | | | | | | | | | It is not well defined what to do if an implementation of the propagation callback throws, so make it noexcept to core the process if it does happen.
* | Add shared constant for PAGE_SIZE.Geir Storli2022-11-251-2/+4
|/
* Drop support for old gtest.Tor Egge2022-11-184-5/+5
|
* Use emplace_backHenning Baldersheim2022-10-183-14/+12
|
* Use std::make_shared for StateCheckers.Henning Baldersheim2022-10-186-197/+119
|
* Rename trimHoldLists() -> reclaim_memory().Geir Storli2022-10-121-2/+2
|
* Rename transferHoldLists() -> assign_generation().Geir Storli2022-10-121-2/+2
|
* Rename first used generation -> oldest used generation.Geir Storli2022-10-121-1/+1
|
* Update test to handle the change to ↵Henning Baldersheim2022-09-303-3/+9
| | | | enable_metadata_only_fetch_phase_for_inconsistent_updates=true as default.
* Always doing three phase updates now.Henning Baldersheim2022-09-301-1/+1
|
* Remove StateManager handling of deprecated Initializing stateTor Brede Vekterli2022-09-263-58/+32
| | | | | | | Neither distributors nor content nodes ever report their state as Initializing as part of their startup sequence; they go straight from Down to Up. Remove complicated init progress delta reporting that is no longer needed.