Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use fast updates when replica metadata is out of sync but document itself is ↵ | Tor Brede Vekterli | 2019-11-15 | 2 | -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 code | Henning Baldersheim | 2019-11-01 | 1 | -1/+0 |
| | |||||
* | Suppress array bounds warning when compiling generated protobuf code. | Tor Egge | 2019-08-23 | 1 | -2/+2 |
| | |||||
* | Remove visitor ordering and order selection. | Henning Baldersheim | 2019-08-09 | 4 | -14/+5 |
| | |||||
* | Assignment is inaccessible (private in ancestor class ↵ | Tor Egge | 2019-07-31 | 1 | -1/+3 |
| | | | | | | storage::api::StorageMessage). Add explicit delete of copy/move assignment for storage::api::MaintenanceCommand. | ||||
* | Remove CppUnit dependencies in modules | Tor Brede Vekterli | 2019-06-26 | 2 | -29/+1 |
| | | | | Move test config helpers out of cppunit submodule. | ||||
* | Add missing includes. | Tor Egge | 2019-06-11 | 5 | -0/+5 |
| | |||||
* | Avoid unknown warning options when using clang. | Tor Egge | 2019-05-08 | 2 | -1/+5 |
| | |||||
* | Ensure required response metadata is propagated to Reply instance | Tor Brede Vekterli | 2019-04-24 | 3 | -5/+62 |
| | |||||
* | Reapply protocol buffers for internal StorageAPI wire encoding | Tor Brede Vekterli | 2019-04-23 | 21 | -725/+2304 |
| | |||||
* | Revert "Use protocol buffers for internal StorageAPI wire encoding" | Tor Brede Vekterli | 2019-04-12 | 21 | -2304/+725 |
| | |||||
* | Tag protocol switchover version as 7.40.5 | Tor Brede Vekterli | 2019-04-12 | 2 | -2/+2 |
| | |||||
* | Address code review feedback | Tor Brede Vekterli | 2019-04-10 | 7 | -82/+30 |
| | | | | | | - don't state next tag in comments, we'll use `reserved` instead - restructure bucket info to version the checksum and not the info itself - add some comments | ||||
* | Explicitly test response without bucket ID remapping | Tor Brede Vekterli | 2019-04-10 | 1 | -1/+12 |
| | |||||
* | Add missing header pragma directive | Tor Brede Vekterli | 2019-04-10 | 1 | -0/+2 |
| | |||||
* | Misc cleanup and refactoring | Tor Brede Vekterli | 2019-04-09 | 4 | -77/+88 |
| | |||||
* | Extend testing of encoded/decoded fields | Tor Brede Vekterli | 2019-04-08 | 2 | -171/+104 |
| | |||||
* | Factor out shared protobuf code | Tor Brede Vekterli | 2019-04-08 | 3 | -157/+186 |
| | |||||
* | Refactor utility codec functions to build on top of each other | Tor Brede Vekterli | 2019-04-08 | 2 | -62/+59 |
| | | | | | | Also move protobuf includes out to a dedicated header file that hides the various cozy GCC warning suppressions we need for the `protoc`- generated code. | ||||
* | Remove old 5.0 code path that generated data no one used | Tor Brede Vekterli | 2019-04-08 | 1 | -44/+2 |
| | |||||
* | Faster protobuf serialization without `std::string` indirection | Tor Brede Vekterli | 2019-04-05 | 2 | -13/+25 |
| | |||||
* | Break up protobufs into multiple files to avoid single, massive generated .h/.cc | Tor Brede Vekterli | 2019-04-05 | 8 | -408/+467 |
| | |||||
* | Don't derive v7 serialization from a prior versioned protocol | Tor Brede Vekterli | 2019-04-05 | 7 | -42/+54 |
| | | | | | | Make `ProtocolSerialization` a proper interface and introduce an intermediate `LegacyProtocolSerialization` class for the legacy versioned protocol implementations. | ||||
* | Implement SetBucketState, Create/DestroyVisitor and RemoveLocation | Tor Brede Vekterli | 2019-04-05 | 4 | -19/+278 |
| | |||||
* | Implement NotifyBucketChange, SplitBucket and JoinBuckets | Tor Brede Vekterli | 2019-04-05 | 3 | -2/+158 |
| | |||||
* | Add support for ApplyBucketDiff and RequestBucketInfo | Tor Brede Vekterli | 2019-04-05 | 4 | -1/+256 |
| | |||||
* | Add support for DeleteBucket, Merge and GetBucketDiff | Tor Brede Vekterli | 2019-04-05 | 3 | -75/+422 |
| | |||||
* | Add start of protobuf serialization protocol implementation | Tor Brede Vekterli | 2019-04-05 | 11 | -5/+814 |
| | |||||
* | Make serialization tests version-parameterizable | Tor Brede Vekterli | 2019-04-05 | 1 | -58/+81 |
| | |||||
* | Convert protocol serialization tests from CppUnit to GTest | Tor Brede Vekterli | 2019-04-05 | 3 | -506/+264 |
| | |||||
* | Merge pull request #8900 from vespa-engine/arnej/no-more-python | Arne H Juul | 2019-03-29 | 1 | -3/+1 |
|\ | | | | | stop using python script for cppunit tests | ||||
| * | stop using python script for cppunit tests | Arne Juul | 2019-03-26 | 1 | -3/+1 |
| | | |||||
* | | Minor C++ cleanups | Tor Brede Vekterli | 2019-03-22 | 1 | -1/+0 |
| | | |||||
* | | Basic handling of activate_cluster_state_version RPC in backend | Tor Brede Vekterli | 2019-03-14 | 5 | -0/+74 |
|/ | |||||
* | Add '()' to macro definition. | Geir Storli | 2019-03-01 | 1 | -1/+1 |
| | |||||
* | Simplify. | Geir Storli | 2019-03-01 | 1 | -1/+0 |
| | |||||
* | Reduce code duplication in gtest runners. | Geir Storli | 2019-02-22 | 1 | -8/+2 |
| | |||||
* | Add gtest runner in storageapi and migrate bucketinfotest from CppUnit to gtest. | Geir Storli | 2019-02-18 | 5 | -27/+47 |
| | |||||
* | remove unused "headersonly" functionality | Arne Juul | 2019-01-21 | 1 | -1/+0 |
| | |||||
* | Remove experimental enable-multiple-bucket-spaces flag. | Geir Storli | 2018-11-23 | 3 | -22/+10 |
| | | | | The feature has been default on since late May 2018. | ||||
* | Remove BatchPutRemove command from storageapi. | Tor Egge | 2018-09-26 | 11 | -460/+0 |
| | |||||
* | Remove BatchDocumentUpdateMessage and BatchDocumentUpdateReply from | Tor Egge | 2018-09-25 | 6 | -104/+0 |
| | | | | | | C++ portion of documentapi. Remove corresponding document api cross language files. Remove corresponding storageapi messages. | ||||
* | Remove whitespace | Henning Baldersheim | 2018-08-12 | 9 | -16/+16 |
| | |||||
* | Pass stringref by value | Henning Baldersheim | 2018-08-11 | 10 | -17/+17 |
| | |||||
* | Pass stringref by value | Henning Baldersheim | 2018-08-10 | 9 | -16/+16 |
| | |||||
* | Add iostream printing of `LockingRequirements` enum values | Tor Brede Vekterli | 2018-07-16 | 2 | -0/+8 |
| | |||||
* | Use shared locking for Get/CreateIterator/GetIter operations | Tor Brede Vekterli | 2018-07-12 | 1 | -11/+15 |
| | |||||
* | Add support for exclusive/shared persistence bucket locking | Tor Brede Vekterli | 2018-07-12 | 2 | -0/+26 |
| | | | | | | | | | | | | | 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. | ||||
* | 1 - Use a backing buffer for the DocumentUpdate that always is source of truth. | Henning Baldersheim | 2018-06-12 | 2 | -4/+3 |
| | | | | | | | | | | | 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. | ||||
* | Merge branch 'master' into balder/reduce-code-visibility-rebased | Henning Baldersheim | 2018-06-12 | 1 | -1/+0 |
|\ |