summaryrefslogtreecommitdiffstats
path: root/storageapi
Commit message (Collapse)AuthorAgeFilesLines
* - Honour max merge chunk size in one place.Henning Baldersheim2020-10-265-21/+11
| | | | - GC incomplete enable_merge_local_node_choose_docs_optimalization handling.
* GC unused _maxBufferSize data member from ApplyBucketDiffReplyHenning Baldersheim2020-10-263-8/+3
|
* - Add class comments.Henning Baldersheim2020-10-192-10/+5
| | | | | | - Reduce code visibility. - Clean up some unused members. - Some code unification.
* Move join handling together with split handling.Henning Baldersheim2020-10-183-18/+14
|
* Simplify.Henning Baldersheim2020-10-121-1/+1
|
* No need for BucketInfo to be virtual just to make it printable.Henning Baldersheim2020-10-124-39/+34
|
* - GC the last usages of vespalib::Lock.Henning Baldersheim2020-10-081-1/+0
| | | | - Now it is only vespalib::Monitor left
* Add noexcept as indicated by -WnoeexceptHenning Baldersheim2020-10-075-27/+25
|
* Gracefully handle RPC header/payload decode failuresTor Brede Vekterli2020-09-301-0/+4
|
* Merge pull request #14524 from ↵Tor Brede Vekterli2020-09-2411-6/+120
|\ | | | | | | | | vespa-engine/vekterli/add-statbucket-storage-protocol-serialization-support Add StatBucket storage protocol (de-)serialization support
| * Add StatBucket storage protocol (de-)serialization supportTor Brede Vekterli2020-09-2411-6/+120
| | | | | | | | | | | | | | Adds both protobuf schema and type ID handling to protocol codec. Old protocol versions are not expected to handle this message, as StatBucket will run over the Document protocol instead of the Storage protocol in such cases.
* | Reorder equality checks so that common case is cheaperTor Brede Vekterli2020-09-231-1/+1
|/ | | | Node index and type are much more likely to differ than cluster.
* Avoid address stringification in common lookup pathTor Brede Vekterli2020-09-224-11/+68
| | | | | | | | Precompute internal address hash over <cluster, type, index> tuple. No other fields are included in the hash, as this is only used for storage API lookups. Remove automatic resending field from address, as we never use MBus resending functionality in the backend communication protocols.
* Add thread-safe encapsulation of protocol codec and live dependency updatesTor Brede Vekterli2020-09-141-2/+3
|
* Basic functionality for direct RPC for StorageAPI communicationTor Brede Vekterli2020-09-143-15/+16
| | | | | | | | This has several advantages: * Completely bypasses all MessageBus indirections * Explicit setup of RPC thread pool * Direct dispatch from RPC thread to persistence queue pool * Better control of encoding/decoding and buffer usage
* - If document type has been resolved, use if for test-and-set too.Henning Baldersheim2020-08-272-0/+13
| | | | - Inline small frequently called methods.
* Consolidate suppress warnings for protobuf sources.Tor Egge2020-08-181-5/+2
|
* Restore include of ostream in storageapi.Tor Egge2020-08-171-0/+1
|
* Use named constants instead of strings sprinkled all over.Henning Baldersheim2020-08-042-7/+10
|
* false != trueHenning Baldersheim2020-07-081-1/+1
|
* Remove non-semantic changes prior to using a sequenced threadpool in mbus.Henning Baldersheim2020-07-081-0/+2
|
* Consolidate search for GTest.Tor Egge2020-07-073-3/+0
|
* avoid naked exitArne Juul2020-07-031-1/+1
|
* Use find_package to find gtest library.Tor Egge2020-06-293-3/+6
|
* Add source target per module for generated sources.Tor Egge2020-06-231-0/+2
|
* Propagate tombstone info through protocol serializationTor Brede Vekterli2020-05-266-14/+72
| | | | | | | For older versions that don't understand the explicit presence of tombstones for GetReply, make it appear as if the reply has simply returned a Not Found response. This makes behavior unchanged in an upgrade scenario.
* Use atomic counter instead of locks for a counter.Henning Baldersheim2020-04-202-27/+9
|
* Reduce code duplication in test code.Tor Egge2020-03-301-12/+5
|
* Handle newer gtest versions where the legacy API is deprecated.Tor Egge2020-03-291-1/+7
|
* Reserve space for vector.Henning Baldersheim2020-03-202-3/+3
| | | | Varoius code cleanup for c++11.
* Add count metric for number of documents garbage collectedTor Brede Vekterli2020-02-245-8/+31
| | | | | | | | | | | | | | | New distributor metric available as: ``` vds.idealstate.garbage_collection.documents_removed ``` Add documents removed statistics to `RemoveLocation` responses, which is what GC is currently built around. Could technically have been implemented as a diff of before/after BucketInfo, but GC is very low priority so many other mutating ops may have changed the bucket document set in the time span between sending the GC ops and receiving the replies. This relates to issue #12139
* Add noexcept to move constructors and operatorsHenning Baldersheim2020-01-212-3/+3
|
* Merge pull request #11822 from vespa-engine/balder/reduce-bytebuffer-exposureHenning Baldersheim2020-01-2113-225/+117
|\ | | | | Balder/reduce bytebuffer exposure
| * Add stream method and use memcpy over casting.Henning Baldersheim2020-01-214-2/+9
| |
| * Add TODO for next commit.Henning Baldersheim2020-01-201-1/+3
| |
| * Make it known that getting serialized size will always be expensive.Henning Baldersheim2020-01-202-2/+9
| |
| * GC a load of unused code. ByteBuffer towards read only.Henning Baldersheim2020-01-209-223/+98
| |
| * Unify towards nbostreamHenning Baldersheim2020-01-164-5/+6
| |
* | Add internal read consistency enum to storage protocol Get requestsTor Brede Vekterli2020-01-167-10/+90
|/
* Just use the stream method.Henning Baldersheim2020-01-161-8/+8
|
* Remove virtuality of DocumentId.Henning Baldersheim2020-01-141-10/+10
|
* Drop timestamp.hHenning Baldersheim2019-12-161-4/+2
|
* timeout as durationHenning Baldersheim2019-12-049-60/+48
| | | | | Conflicts: messagebus/src/vespa/messagebus/testlib/testserver.cpp
* Use fast updates when replica metadata is out of sync but document itself is ↵Tor Brede Vekterli2019-11-152-3/+11
| | | | | | | | | | | | | | | | | | | | | | | in sync When a bucket has replicas with mismatching metadata (i.e. they are out of sync), the distributor will initiate a write-repair for updates to avoid divergence of replica content. This is done by first sending a Get to all diverging replica sets, picking the highest timestamp and applying the update locally. The updated document is then sent out as a Put. This can be very expensive if document Put operations are disproportionally more expensive than partial updates, and also makes the distributor thread part of a contended critical path. This commit lets `TwoPhaseUpdateOperation` restart an update as a "fast path" update (partial updates sent directly to the nodes) if the initial read phase returns the same timestamp for the document across all replicas. It also removes an old (but now presumed unsafe) optimization where Get operations are only sent to replicas marked "trusted" even if others are out of sync with it. Since trustedness is a transient state that does not persist across restarts or bucket handoffs, it's not robust enough to be used for such purposes. Gets will now be sent to all out of sync replica groups regardless of trusted status.
* Remove unused codeHenning Baldersheim2019-11-011-1/+0
|
* Suppress array bounds warning when compiling generated protobuf code.Tor Egge2019-08-231-2/+2
|
* Remove visitor ordering and order selection.Henning Baldersheim2019-08-094-14/+5
|
* Assignment is inaccessible (private in ancestor class ↵Tor Egge2019-07-311-1/+3
| | | | | | storage::api::StorageMessage). Add explicit delete of copy/move assignment for storage::api::MaintenanceCommand.
* Remove CppUnit dependencies in modulesTor Brede Vekterli2019-06-262-29/+1
| | | | Move test config helpers out of cppunit submodule.
* Add missing includes.Tor Egge2019-06-115-0/+5
|