summaryrefslogtreecommitdiffstats
path: root/vdslib
Commit message (Collapse)AuthorAgeFilesLines
* Add new Protobuf-based MessageBus DocumentAPI protocolTor Brede Vekterli2024-02-162-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds an entirely new implementation of the internal MessageBus DocumentAPI protocol, which shall be functionally 1-to-1 compatible with the existing legacy protocol. New protobuf schemas have been added to the top-level documentapi module, which are separated into different domains of responsibility: * CRUD messages * Visiting messages * Data inspection messages As well as a schema for shared, common message types. Both C++ and Java protocol implementations separate serialization and deserialization into a codec abstraction per message type, which hides the boilerplate required for Protobuf buffer management. The Java version is a tad more verbose due to generics type-erasure. This protocol does _not_ currently support lazy (de-)serialization in Java, as the existing mechanisms for doing so are inherently tied to the legacy protocol version. Performance tests will decide if we need to introduce such functionality to the new protocol version. To avoid having the new protocol go live in production, this commit changes the semantics of how MessageBus version reporting works (at least for the near future); instead of reporting the current Vespa _release_ version, it reports the highest supported _protocol_ version. This lets us conditionally enable the new protocol by reporting a MessageBus version greater than or equal to the protocol version _iff_ the protocol should be active. The new protocol is disabled by default. Other changes: * Protocol tests have been moved up one package directory level to be aligned with the actual package of the classes they test. This allows for using package-protected constructors in the serialization tests. * `DocumentDeserializer` now exposes the underlying document type repo/manager. This is done to detangle `Document`/`DocumentUpdate` deserialization from the underlying wire buffer management. * `RemoveLocationMessage` at long last contains a bucket space, which was forgotten when we initially added this concept to the other messages, and where the pain of adding it in later was too big (not so anymore!). Unit tests for both C++ and Java have been hoisted from the legacy test suite, cleaned up and extended with additional cases. The C++ tests use the old unit test kit and should receive a good follow-up washing and GTest-rewrite. **Important**: due to how MessageBus protocol versioning works, the final protocol version is _not_ yet decided, as setting it requires syncing against our build systems. A follow-up commit will assign the final version as well as include all required binary test files.
* Update expected filesBjørn Christian Seime2024-02-1341-41/+41
|
* Followup on review comments and initialize members explicit.Henning Baldersheim2024-02-051-2/+10
|
* GC unused distributor_auto_ownership_transfer_on_whole_group_downHenning Baldersheim2024-02-033-26/+21
|
* - Avoid inefficient generic template.Henning Baldersheim2023-12-293-33/+48
| | | | - Add explicit implementations for the types needed.
* Update copyrightJon Bratseth2023-10-0982-82/+82
|
* Use hashmap and sort instead of std::mapHenning Baldersheim2023-08-181-5/+11
|
* - Avoid going via a temporary IdealNodesList.Henning Baldersheim2023-08-147-231/+45
| | | | | | | - Use ConstArrayRef to hide implementation. - Store all 3 node categories in a single vector. - Use a small_vector that can handle redundancy up to 5 without requiring extra memory allocation. - Build a hash_map if redundancy/groups > 32 for constant lookup time.
* When splitting a large number of nodes into their leaf groups you end up ↵Henning Baldersheim2023-08-112-2/+6
| | | | | | with many vectors with only a single node in them. Then it is more efficient to use a small_vector that keeps the 4 first entries within. Reduces # allocations and avoids indirection.
* Merge pull request #28023 from vespa-engine/balder/minor-layout-cleanupHenning Baldersheim2023-08-112-24/+20
|\ | | | | Minor code health.
| * Minor code health.Henning Baldersheim2023-08-102-24/+20
| |
* | Reduce use of default values in method callsHenning Baldersheim2023-08-103-114/+60
| |
* | Unify code layoutHenning Baldersheim2023-08-102-61/+37
|/
* Generate fast lookup table for ideal onceHenning Baldersheim2023-08-101-7/+2
|
* GC void ignoreNewFeatures flag always false.Henning Baldersheim2023-08-093-27/+20
|
* - Use a hashmap for string Node/NodeState in ClusterState for fast lookup.Henning Baldersheim2023-08-093-11/+21
| | | | - Do explicit sort when serializing.
* Common code for node serialization too.Henning Baldersheim2023-08-092-43/+40
|
* All are up if NONE are printed....Henning Baldersheim2023-08-091-1/+1
|
* Avoid short-circuit optimization trap...Henning Baldersheim2023-08-092-8/+8
|
* Modernize code and prepare for changing map implementation.Henning Baldersheim2023-08-093-151/+132
|
* Merge pull request #27990 from vespa-engine/balder/minor-noexceptHenning Baldersheim2023-08-093-18/+14
|\ | | | | Add noexcept and minor style changes
| * Add noexcept and minor style changesHenning Baldersheim2023-08-083-18/+14
| |
* | Add noexceptHenning Baldersheim2023-08-082-11/+11
|/
* Add back needed codeHarald Musum2023-07-071-0/+11
|
* Cleanup, simplify, remove dead code. No functional changesHarald Musum2023-07-0719-340/+211
|
* Minor refactoring and start of some new testHarald Musum2023-07-051-2/+2
|
* Add necessary options to use failOnWarningsgjoranv2023-06-051-0/+1
|
* Add bundle type to all CORE bundles.gjoranv2023-05-251-0/+3
|
* Deserialize match features in SearchResult used in streaming search.Geir Storli2023-05-022-15/+73
|
* Serialize match features in vdslib::SearchResult.Tor Egge2023-04-283-18/+214
|
* Add match features to search result in vdslib module.Tor Egge2023-04-273-7/+67
|
* Build with jdk20Jon Bratseth2023-04-171-2/+2
|
* Use std::distance to find distance between two iterators.Tor Egge2023-04-031-2/+3
|
* Use return value from std::unique.Tor Egge2023-04-031-1/+2
|
* More understandable errors, and implement inner convertJon Bratseth2023-03-311-8/+8
|
* Don't use record, fails when running system testsHarald Musum2023-03-281-3/+21
|
* Deprecate distributor_auto_ownership_transfer_on_whole_group_downHarald Musum2023-03-283-649/+11
| | | | | Stop using the config value (same as currrent default value, which is true). Also: distribution config does not have this field, only stor-distribution config has
* Merge pull request #26604 from vespa-engine/hmusum/cleanup-cluster-controller-2Harald Musum2023-03-281-5/+0
|\ | | | | Simplify and add todo about removing disk_distribution in Vespa 9
| * Simplify and add todo about removing disk_distribution in Vespa 9Harald Musum2023-03-281-5/+0
| |
* | Remove obsolete maven updateReleaseInfo parameterHarald Musum2023-03-281-3/+0
|/ | | | Removed in maven-deploy-plugin 3.0 and later, see https://issues.apache.org/jira/browse/MDEPLOY-240
* Minor cleanup, no functional changesHarald Musum2023-03-274-46/+34
|
* Move test code to test classHarald Musum2023-03-261-39/+0
|
* re-apply "remove fastos"Håvard Pettersen2023-03-011-1/+0
| | | | This reverts commit 003f019d7579e49f4ec7609ef8eac26ada6ae753.
* Revert "remove fastos"Harald Musum2023-02-281-0/+1
|
* remove fastosHåvard Pettersen2023-02-281-1/+0
|
* Timestamp used in NodeState must have well defined resolution in order to ↵Henning Baldersheim2023-02-073-20/+16
| | | | | | compare for exactness. Revert back to using an uint64_t for representing it as seconds since epoch.
* Let default max timeout be 600sHenning Baldersheim2023-02-071-2/+1
|
* it => token and some formattingHenning Baldersheim2023-02-071-51/+31
|
* Revert "Revert "Use steady_time for vdslib::NodeState MERGEOK""Henning Baldersheim2023-02-073-45/+45
|
* Revert "Use steady_time for vdslib::NodeState MERGEOK"Henning Baldersheim2023-02-073-45/+45
|