summaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Reduce amount of inlining for large methodsHenning Baldersheim2019-10-141-0/+3
|
* Don't recompute bucket key inside merge functionTor Brede Vekterli2019-10-101-3/+8
|
* Always process Get replies to avoid racing with reconfigsTor Brede Vekterli2019-10-102-4/+11
|
* Add unit tests for starting Gets outside distributor coreTor Brede Vekterli2019-10-092-9/+55
|
* Rewrite read-only DB updating to use the linear merge-based APITor Brede Vekterli2019-10-092-5/+42
| | | | Avoids O(n) explicit inserts in favor of a bulk load.
* Support thread-safe metric updatesTor Brede Vekterli2019-10-094-20/+45
| | | | Currently only used for code paths touched by Get operations.
* Allow executing Get operations outside the main distributor threadTor Brede Vekterli2019-10-088-11/+83
| | | | Requires _both_ B-tree DB to be used _and_ stale reads to be enabled.
* Add test-and-set failures as own distributor metricTor Brede Vekterli2019-10-073-4/+31
| | | | | | | Would otherwise be counted under mysterious "storagefailure" catch-all category. Currently not tracked under aggregate failure sum metric, as these are not really "failures" since TaS-failures are expected to happen and do not indicate problems in the backend.
* Remove currently unused member variableTor Brede Vekterli2019-10-073-9/+4
|
* Rewrite Get operation starting to use explicit snapshottingTor Brede Vekterli2019-10-0317-114/+185
|
* Add support for snapshotting all state required for routing a bucket operationTor Brede Vekterli2019-10-0110-11/+490
| | | | | | Let BucketDBUpdater expose a snapshotting function which will handle database routing based on the requested bucket and any pending cluster state transition.
* Add memory load-fences that match existing corresponding store-fencesTor Brede Vekterli2019-09-271-1/+4
|
* Let GetOperation take in explicit database read guardTor Brede Vekterli2019-09-275-11/+19
| | | | | Use a `shared_ptr` to enable multiple operations to share the same logical snapshot.
* Disable old, non-deterministic testTor Brede Vekterli2019-09-271-1/+1
| | | | Needs to be rewritten or discarded.
* Add config option for using B-tree bucket DB in distributorTor Brede Vekterli2019-09-2416-18/+89
| | | | | | Still disabled by default; this will be swapped later. Expose read guard generation for easier debugging. Add some explicit tests for read guard snapshot semantics.
* Add config override for simulating bucket info request processing latencyTor Brede Vekterli2019-09-204-10/+22
| | | | | | | | Simulates added request latency caused by the BucketManager computing bucket ownership for a very large number of buckets. Fetched at BucketManager init only, so not a dynamic config. This is only meant for internal testing so should not have any practical consequences.
* Inhibit merges when ideal node is unavailable in pending stateTor Brede Vekterli2019-09-194-34/+64
| | | | | | | | | | Upon entering a cluster state transition edge the distributor will prune all replicas from its DB that are on nodes that are unavailable in the _pending_ state. As long as this state is pending, the _current_ state will include these nodes as available. But since replicas for the unavailable node(s) have been pruned away, started merges that involve these nodes as part of their chain are doomed to fail. We therefore inhibit such merges from being started in the first place.
* Allow Get operations through when content node is in Maintenance modeTor Brede Vekterli2019-09-182-4/+26
| | | | | If Gets are bounced by Maintenance nodes, operations that take place in a two-phase state transition window Up->Maintenance will be aborted.
* Add config overrides for simulating processing of large bucket setsTor Brede Vekterli2019-09-176-3/+50
| | | | | | | Allows injecting artificial thread delays during bucket DB pruning and merging on the distributor. By default, of course, will not inject any delays at all.
* Unify on fastos::time().Henning Baldersheim2019-08-281-1/+2
|
* Avoid the last usages of time(0/NULL/nullptr) in the codebase.Henning Baldersheim2019-08-261-3/+3
|
* Avoid calling time(nullptr)Henning Baldersheim2019-08-261-4/+5
|
* time(0) to chrono::steady_clock.Henning Baldersheim2019-08-233-8/+9
|
* Remove v6 and v7 from java side.Henning Baldersheim2019-08-211-9/+0
|
* Revert "Revert "doc: -> id:""Henning Baldersheim2019-08-211-5/+0
|
* Revert "doc: -> id:"Henning Baldersheim2019-08-211-0/+5
|
* GC unused codeHenning Baldersheim2019-08-191-5/+0
|
* Merge pull request #10325 from ↵Tor Brede Vekterli2019-08-197-34/+123
|\ | | | | | | | | vespa-engine/vekterli/add-minimal-bucket-db-read-snapshot-guard-interface Add minimal bucket DB read snapshot guard interface
| * Add missing whitespaceTor Brede Vekterli2019-08-191-1/+1
| |
| * Use snapshot read guard for Get operationsTor Brede Vekterli2019-08-191-16/+12
| |
| * Add minimal snapshot read guard interface to bucket DBTor Brede Vekterli2019-08-196-18/+111
| | | | | | | | | | | | | | Only exposes enough functionality to be used for Get operations for now. Enable free-lists for underlying replica `ArrayStore`. Legacy `MapBucketDatabase` read guard is _not_ thread safe, as it will never be used for non-blocking reads.
* | Merge pull request #10313 from vespa-engine/balder/remove-doc-ids-part-3Henning Baldersheim2019-08-1912-204/+171
|\ \ | | | | | | doc: -> id:
| * | Update test with enough significant bits.Henning Baldersheim2019-08-191-1/+1
| | |
| * | Not completely removed yet...Henning Baldersheim2019-08-191-0/+5
| | |
| * | Remove DocIdString outside of documentHenning Baldersheim2019-08-197-129/+92
| | |
| * | doc: -> id:Henning Baldersheim2019-08-166-80/+79
| |/
* | Merge pull request #10261 from ↵Tor Brede Vekterli2019-08-191-0/+18
|\ \ | |/ |/| | | | | vespa-engine/vekterli/set-status-page-basic-http-security-headers Set basic HTTP security headers on status pages served from backend
| * Set basic HTTP security headers on status pages served from backendTor Brede Vekterli2019-08-131-0/+18
| | | | | | | | | | | | We should already escape everything printed on these pages, but as part of a defense in depth strategy we use a restrictive set of HTTP security headers to minimize the impact in the case of a regression or bug.
* | Merge pull request #10227 from vespa-engine/balder/remove-legacy-docidsHenning Baldersheim2019-08-151-15/+0
|\ \ | | | | | | Balder/remove legacy docids
| * | Remove legacy orderdoc, groupdoc, userdoc documentidsHenning Baldersheim2019-08-091-15/+0
| | |
* | | Follow up from review comments.Henning Baldersheim2019-08-152-11/+0
|/ /
* / Remove visitor ordering and order selection.Henning Baldersheim2019-08-097-228/+25
|/
* Remove the use and testing of legacy groupdoc/userdoc/orderdoc document ids.Henning Baldersheim2019-08-0910-338/+64
|
* Adjust format string for bucket db updater.Tor Egge2019-08-071-1/+1
|
* Use std::_Exit instead of std::quick_exit.Tor Egge2019-08-061-1/+1
|
* Don't depend on gcc libs when using clangTor Egge2019-08-011-1/+1
|
* Adjust forward declaration for IdealStateManagerTest.Tor Egge2019-07-311-1/+1
|
* Use enum class for storage::spi::Result::ErrorType.Tor Egge2019-07-309-31/+31
|
* Use proper scope for enum constants.Tor Egge2019-07-301-3/+3
|
* Assert once (per version) on broken bucket DB invariantsTor Brede Vekterli2019-07-021-6/+8
| | | | | | A conservative approach to tracking down any unknown edge cases here since it's not known if any particular applications may trigger it more often than others.