aboutsummaryrefslogtreecommitdiffstats
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | Merge pull request #6233 from ↵Geir Storli2018-06-191-26/+29
|\ \ | | | | | | | | | | | | vespa-engine/vekterli/debug-log-when-config-is-received-on-content-node Debug log when new config is received on content node
| * | Debug log when new config is received on content nodeTor Brede Vekterli2018-06-191-26/+29
| | |
* | | Use std::max, and do it on the correct place.Henning Baldersheim2018-06-151-1/+1
| | |
* | | Control threadpool and dispatch of encode/decode by config.Henning Baldersheim2018-06-152-4/+20
|/ /
* / 1 - Use a backing buffer for the DocumentUpdate that always is source of truth.Henning Baldersheim2018-06-129-39/+25
|/ | | | | | | | | | | 2 - Use this buffer for re-serialization. 3 - Make deserialization lazy where possible. Currently lazy on replay and when arriving over the storageapi. Still needs to eager over documentapi. 4 - Deserialize eagerly in the persistence thread since those are plentyfull and not bottlenecked, instead of in the single master thread. Use real repo.
* Last style changes before lazy documentupdate PR.Henning Baldersheim2018-06-123-37/+13
|
* Merge branch 'master' into balder/reduce-code-visibility-rebasedHenning Baldersheim2018-06-122-8/+0
|\
| * clean up remnants of .mak filesArne Juul2018-06-112-8/+0
| |
* | Reduce code visibilityHenning Baldersheim2018-06-128-179/+90
|/
* Don't assume visitor threads immediately destroy visitorsTor Brede Vekterli2018-06-011-11/+7
|
* Clean up some old codeTor Brede Vekterli2018-06-011-79/+44
|
* Clean up visitors that we've already initiatedTor Brede Vekterli2018-06-011-10/+37
|
* Simplify testsTor Brede Vekterli2018-06-011-45/+2
|