summaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #8153 from vespa-engine/havardpe/remove-fastlib-webserverHenning Baldersheim2019-01-151-1/+0
|\ | | | | remove fastlib webserver
| * remove fastlib webserverHåvard Pettersen2019-01-151-1/+0
| |
* | Merge pull request #8109 from vespa-engine/vekterli/fix-tsan-detected-data-racesTor Brede Vekterli2019-01-157-24/+30
|\ \ | |/ |/| Fix some ThreadSanitizer reported data races
| * Use atomics for flags and configs set and read across threadsTor Brede Vekterli2019-01-105-16/+19
| |
| * Use atomics to ensure well-defined memory visibility in testTor Brede Vekterli2019-01-101-7/+8
| |
| * Pending count must be atomic, read and written from different threadsTor Brede Vekterli2019-01-091-1/+3
| |
* | improve path/query handlingHåvard Pettersen2019-01-141-14/+2
|/ | | | | | - return attributes by value to avoid referencing deconstructed objects. - use path/query form portal request to avoid dequoting issues - log raw uri instead of dequoted non-parsed uri
* GC unused code and update includesHenning Baldersheim2019-01-052-1/+2
|
* Quck bail out when port can not be listened to.Henning Baldersheim2019-01-041-2/+8
|
* log status server exceptionsHåvard Pettersen2019-01-041-0/+1
|
* move-construct function memberHåvard Pettersen2019-01-041-1/+1
|
* do not inherit from RunnableHåvard Pettersen2019-01-041-3/+1
|
* use portal in storage webserverHåvard Pettersen2019-01-023-243/+114
|
* Add TLS statistics to vespalib and expose as metrics via storageserverTor Brede Vekterli2018-12-186-8/+123
| | | | Now without unused expiry time extraction.
* Revert "Add TLS statistics to vespalib and expose as metrics via storageserver"Harald Musum2018-12-186-123/+8
|
* Add TLS statistics to vespalib and expose as metrics via storageserverTor Brede Vekterli2018-12-176-8/+123
| | | | | Also add functionality for extracting "notAfter" expiration time from current certificate, which may later be added as an expiry metric.
* Support test-and-set for auto-create document updatesTor Brede Vekterli2018-11-267-29/+72
| | | | | | | Has the obvious consistency caveats that if all your existing replicas are down, the update will go through since the document from an weak consistency perspective does not exist anywhere. But can be a useful feature if this is an acceptable tradeoff.
* Remove experimental enable-multiple-bucket-spaces flag.Geir Storli2018-11-236-50/+4
| | | | The feature has been default on since late May 2018.
* Correct copyright yearTor Brede Vekterli2018-11-201-1/+1
|
* Add explicit metric for diverging timestamps on updated documentsTor Brede Vekterli2018-11-1911-13/+95
| | | | Easier to track across nodes than hunting for log warnings.
* Warn on updates done against divergent timestampsTor Brede Vekterli2018-11-141-20/+20
| | | | | | | | | | This should not happen during normal operation as the distributor should be aware if bucket replicas are out of sync before deciding whether an update requires a two-phase fallback. Warning for now to see if it can be observed anywhere. The logic surrounding the warning will likely be rewritten to treat this as an explicit failure at a later point.
* Expose exception information. If totally unknown, generate core.Henning Baldersheim2018-10-093-13/+1
|
* remove legacy tags, always pass vectorArne Juul2018-10-0817-171/+191
|
* Merge pull request #7193 from vespa-engine/arnej/drop-dimension-keyArne H Juul2018-10-063-6/+6
|\ | | | | Arnej/drop dimension key
| * avoid using old "dimensionkey" conceptArne Juul2018-10-033-6/+6
| | | | | | | | | | | | | | | | | | | | * adding a "dimensionkey" would add an extra dimension to json reporting, but used the Metric name as the value in that dimension. This means there was no added information at all. Also, the "operationtype" dimension wasn't populated with operation types, even if it looked that way, because it wasn't used directly but was cloned and the actual name would be the loadtype instead, making it very confusing.
* | Let CreateIterator inherit priority of parent visitorTor Brede Vekterli2018-10-052-2/+6
| | | | | | | | | | Since CreateIterator now does more than just in-memory metadata work (i.e. it may hit the disk), it should not be given a fixed, very high priority.
* | Remove the costly and unnecessary setSlobrokId interface.Henning Baldersheim2018-10-041-15/+12
|/
* avoid "clever" operator++ overloadArne Juul2018-09-268-38/+38
|
* Remove BatchPutRemove command from storageapi.Tor Egge2018-09-2612-27/+5
|
* Remove BatchDocumentUpdateMessage and BatchDocumentUpdateReply fromTor Egge2018-09-256-69/+1
| | | | | | C++ portion of documentapi. Remove corresponding document api cross language files. Remove corresponding storageapi messages.
* remove non-instant invocationHåvard Pettersen2018-09-051-5/+5
|
* Remove unused codeHenning Baldersheim2018-08-204-33/+0
|
* Deinline for gcc 8Henning Baldersheim2018-08-152-0/+3
|
* Remove whitespaceHenning Baldersheim2018-08-127-10/+10
|
* Pass stringref by valueHenning Baldersheim2018-08-113-3/+3
|
* Pass stringref by valueHenning Baldersheim2018-08-107-10/+10
|
* Deactivate all buckets in content layer bucket db when derived clusterTor Egge2018-08-074-12/+30
| | | | | state indicates that node changes from up to down state even if node remains up according to baseline cluster state.
* Remove stringref::c_str()Tor Brede Vekterli2018-07-2513-39/+40
| | | | | | | | | | | | | The expected semantics of c_str() (a null-terminated string) cannot be satisfied with a string reference, so remove the function entirely to prevent people from using it in buggy ways. Replaces c_str() with data() in places where it is presumed safe, otherwise constructs temporary string instances. Certain callsites have been de-stringref'd in favor of regular strings, in particular where C APIs have been transitively called. The vast majority of these were called with string parameters anyway, so should not cause much extra allocation.
* Test operation batch barrier with different lock modesTor Brede Vekterli2018-07-162-1/+20
|
* Add tests of shared/exclusive persistence queue lockingTor Brede Vekterli2018-07-165-74/+156
|
* Use shared locking for Get/CreateIterator/GetIter operationsTor Brede Vekterli2018-07-121-0/+6
|
* Add support for exclusive/shared persistence bucket lockingTor Brede Vekterli2018-07-125-56/+143
| | | | | | | | | | | | | Operations that are tagged as only requiring shared locking may run concurrently with other shared lock operations. Operations requiring exclusive locking (all mutations) can't run concurrently with any other operations, shared or not. Let operations be able to explicitly specify their locking requirements. Default is exclusive locking, which shall give the same behavior as before. Since this locking happens at a stripe granularity, it's vital that operations are routed deterministically to the correct stripe based on their bucket.
* Hardcode visitor iterators per bucket to 1Tor Brede Vekterli2018-07-123-30/+19
| | | | | | | | | | We have an SPI iterate() invariant that states the provider shall never observe concurrent calls for the same iterator ID. If GetIter operations can operate in shared locking mode, this invariant will no longer hold if multiple GetIters for a single iterator ID can be pipelined in the queue. We therefore ignore the config entirely. This is not expected to cause any performance regressions in practice.
* Merge pull request #6180 from vespa-engine/arnej/use-log-abortHenning Baldersheim2018-06-2112-17/+31
|\ | | | | use LOG_ABORT not just abort()
| * some more cleanupArne Juul2018-06-201-1/+0
| |
| * move LOG_SETUP after other includesArne Juul2018-06-204-7/+11
| |
| * add and use HDR_ABORT insteadArne Juul2018-06-204-9/+13
| |
| * Merge branch 'master' into arnej/use-log-abortArne Juul2018-06-2012-69/+74
| |\
| * | use LOG_ABORT not just abort()Arne Juul2018-06-1210-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * abort() has the unfortunate effect that nothing is seen in the log, just an event (which is usually not displayed); so ops people don't see that the program is crashing at all. * LOG_ABORT("message") will log an error with the message (and the file and line) before calling abort(), so it's easy to see what happened. * add or move <vespa/log/log.h> include and LOG_SETUP lines before LOG_ABORT is used (or included).
* | | Log config changes from Bouncer componentTor Brede Vekterli2018-06-205-13/+37
| |/ |/| | | | | | | Also change debug output to be Slime structure, since the encoded string does not seem to have had the intended semantics.