aboutsummaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Add backend support for distributed condition evaluationTor Brede Vekterli2023-04-1811-61/+245
| | | | | | | | | | | | Lets the "test" part of a test-and-set condition be evaluated locally on individual content nodes. Piggybacks on top of metadata-only Get operations, adding a new condition field to the request and a boolean match result to the response. Decouples the existing TaS utility code from being command-oriented, allowing it to be used in other contexts as well. Not yet wired through any protocols.
* Change buffer state accounting from elements to entries.Tor Egge2023-04-041-1/+1
|
* Use timed waits on persistence queue condition variableTor Brede Vekterli2023-04-041-2/+2
| | | | | | | | | | This is a pragmatic workaround for our current optimistic signalling mechanisms seemingly being susceptible to lost wakeups under certain conditions. We should redesign how persistence queue signalling works on a more fundamental level to avoid this scenario altogether, but for now this will at least remove the possibility that a thread may be stalled if the persistence queues are completely quiescent over longer periods of time.
* Minor code cleanups; no changes in semanticsTor Brede Vekterli2023-03-285-12/+12
|
* Ensure proper memory visibility on distributor stripe flushTor Brede Vekterli2023-03-271-0/+6
| | | | | | | | | | | | | | | Flushing the distributor stripes happens as part of process shutdown and therefore takes place in the main thread. At this point we should no longer receive any messages from the RPC/messaging subsystems, but there may still be lingering replies to be purged. At this point, the stripe threads are joined but the communication manager thread is not (happens slightly after in the shutdown sequence). We therefore have to explicitly form a mutex acquire/release pair to ensure proper memory visibility between anything touched by the comm. manager thread (within the mutex) and our main thread. This should resolve a ThreadSanitizer error.
* Add capability checking to state API handlersTor Brede Vekterli2023-03-224-6/+25
| | | | | | | | | | | | | | | | | | This covers both the entry points from the `storagenode` and `searchnode` HTTP servers, though the former is mostly in the name of legacy support. Ideally, capability checking would exist as a property of the HTTP server (Portal) bindings, but the abstractions for the JSON request handling are sufficiently leaky that it ended up making more sense to push things further down the hierarchy. It's always a good thing to move away from using strings with implicit semantics as return types anyway. The `searchnode` state API handler mapping supports fine grained capabilities. The legacy `storagenode` state API forwarding does not; it uses a sledgehammer that expects the union of all possible API capability requirements.
* Include mutex to get definition of std::mutex.Tor Egge2023-03-161-0/+1
|
* Add locking for reported node state in TestNodeStateUpdater.Tor Egge2023-03-162-2/+5
|
* Merge pull request #26423 from ↵Geir Storli2023-03-138-17/+20
|\ | | | | | | | | vespa-engine/geirst/less-document-without-type-repo Reduce creation of Document instances without DocumentTypeRepo.
| * Reduce creation of Document instances without DocumentTypeRepo.Geir Storli2023-03-138-17/+20
| |
* | Be explicit about lbound/ubound for bucket DB iteration and add lbound variantTor Brede Vekterli2023-03-137-51/+90
|/ | | | | | The DB API was rather coy about whether `forEach` had lower or upper bound semantics with regards to the bucket ID passed in as a starting point. Be explicit and add a lower-bound variant.
* Use `optional` instead of `unique_ptr`Tor Brede Vekterli2023-03-071-41/+29
| | | | Plus some additional minor cleanup.
* use ref_counted in fnetHåvard Pettersen2023-03-065-8/+8
| | | | | | also get rid of some cleanup functions on reference counted classes enable specifying low-level parameters to addref/subref (cnt/reserve)
* Use matching duration for time_point.Tor Egge2023-03-066-8/+8
|
* typesafe getLastProcessedTime tooHenning Baldersheim2023-03-012-5/+5
|
* Use a typed period.Henning Baldersheim2023-03-013-13/+12
|
* Always run the snapshot hooks when forcing a metrics update.Henning Baldersheim2023-03-011-5/+1
|
* Set period in constructor onlyHenning Baldersheim2023-03-011-4/+4
|
* GC legacy dontcallupdatehooks metrics param.Henning Baldersheim2023-03-011-10/+6
|
* Revert "Revert "Balder/enforce system time for snapshot""Henning Baldersheim2023-03-012-13/+12
|
* Revert "Balder/enforce system time for snapshot"Henning Baldersheim2023-03-012-12/+13
|
* Merge pull request #26253 from vespa-engine/balder/use-typesafe-time-in-vespalogHenning Baldersheim2023-03-014-1/+4
|\ | | | | Use typesafe time in vespalog
| * Reduce transitive includes.Henning Baldersheim2023-03-014-1/+4
| |
* | Merge pull request #26234 from ↵Henning Baldersheim2023-03-012-13/+12
|\ \ | |/ |/| | | | | vespa-engine/balder/enforce-system-time-for-snapshot Balder/enforce system time for snapshot
| * Merge branch 'master' into balder/enforce-system-time-for-snapshotHenning Baldersheim2023-02-281-0/+1
| |\
| * | - Enforce using the correct clock for metrics snapshot.Henning Baldersheim2023-02-282-13/+12
| | | | | | | | | | | | | | | - Print human readable time in error messages. - Human readable time in text/plain too.
| * | Ensure we stay with system time until limitation has been lifted in a type ↵Henning Baldersheim2023-02-282-2/+2
| | | | | | | | | | | | safe way.
| * | Unify on steady timeHenning Baldersheim2023-02-282-2/+2
| | |
* | | Merge pull request #26241 from vespa-engine/balder/gc-unused-messagesinkHenning Baldersheim2023-03-013-117/+0
|\ \ \ | | | | | | | | GC unused MessageSink
| * | | GC unused MessageSinkHenning Baldersheim2023-03-013-117/+0
| | |/ | |/|
* | | remove additional no-longer-relevant fastos referencesHåvard Pettersen2023-03-011-6/+6
| | |
* | | re-apply "remove fastos"Håvard Pettersen2023-03-011-1/+0
|/ / | | | | | | This reverts commit 003f019d7579e49f4ec7609ef8eac26ada6ae753.
* | Merge pull request #26233 from vespa-engine/revert-26225-havardpe/remove-fastosHenning Baldersheim2023-02-281-0/+1
|\ \ | | | | | | Revert "remove fastos"
| * | Revert "remove fastos"Harald Musum2023-02-281-0/+1
| |/
* | Merge pull request #26224 from ↵Henning Baldersheim2023-02-282-2/+2
|\ \ | |/ |/| | | | | vespa-engine/balder/use-steady-time-for-metric-manager Unify on steady time
| * Ensure we stay with system time until limitation has been lifted in a type ↵Henning Baldersheim2023-02-282-2/+2
| | | | | | | | safe way.
| * Unify on steady timeHenning Baldersheim2023-02-282-2/+2
| |
* | Merge pull request #26227 from vespa-engine/balder/remove-fastos-typesHenning Baldersheim2023-02-281-34/+0
|\ \ | | | | | | Remove fastos/types.
| * | Remove fastos/types.Henning Baldersheim2023-02-281-34/+0
| |/
* / remove fastosHåvard Pettersen2023-02-281-1/+0
|/
* Use vespalib::steady_time for getMilliSecTime to ensure no wraps around and ↵Henning Baldersheim2023-02-283-60/+46
| | | | safer code.
* GC xml output of metrics.Henning Baldersheim2023-02-281-13/+1
|
* avoid using fastos thread in searchcoreHåvard Pettersen2023-02-271-1/+0
| | | | also remove some left-behind includes
* Merge pull request #26175 from ↵Geir Storli2023-02-247-22/+9
|\ | | | | | | | | vespa-engine/havardpe/avoid-fastos-thread-in-storage avoid using fastos thread in storage
| * avoid using fastos thread in storageHåvard Pettersen2023-02-247-22/+9
| |
* | untangle messagebus from fastosHåvard Pettersen2023-02-241-0/+1
|/
* untangle fnet from fastosHåvard Pettersen2023-02-223-7/+2
|
* remove document::RunnableHåvard Pettersen2023-02-2017-52/+39
| | | | use std::thread directly instead
* Add metrics tracking failed RPC and status page capability checksTor Brede Vekterli2023-02-173-1/+19
|
* use std::thread directlyHåvard Pettersen2023-02-151-1/+1
| | | | | | also add very simple ThreadPool class to run multiple threads at once make an effort to only join once