aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
Commit message (Collapse)AuthorAgeFilesLines
* Tag Protobuf protocol boundary version and add binary test filesTor Brede Vekterli2024-02-212-4/+4
| | | | | | | All _reported_ versions >= 8.310 use Protobuf protocol, all lower versions use the legacy protocol. Reported version is controlled by an environment variable and defaults to 8.309, i.e. the legacy version.
* Add new Protobuf-based MessageBus DocumentAPI protocolTor Brede Vekterli2024-02-163-7/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Ensure mbus is not shut down while processing mbus requestsjonmv2023-11-302-15/+11
|
* Non-funcitonal changesjonmv2023-11-303-19/+17
|
* Wait for first reply to be set, in test threadjonmv2023-10-181-1/+4
|
* Discard sequenced messages if task destroyed before runjonmv2023-10-162-4/+4
|
* Fix test to fail when sequenced-task discards it on destroy()jonmv2023-10-131-6/+13
|
* Test sequencer with messenger and deep reply->send-next recursionjonmv2023-10-132-2/+46
|
* Revert "Merge pull request #28922 from ↵jonmv2023-10-135-11/+34
| | | | | | | vespa-engine/revert-28846-balder/deliver-reply-before-sending-next-in-sequence" This reverts commit 33ca0c01d65ba52ed0b508912069fee9db79dfcc, reversing changes made to a4515aed1c078f2d521c3eb8de2d327dfa336644.
* Revert "Balder/deliver reply before sending next in sequence"Jon Marius Venstad2023-10-135-34/+11
|
* Revert invalid "simplification"Jon Marius Venstad2023-10-121-1/+1
|
* Info log message when MbusServer is finally destroyedjonmv2023-10-112-2/+4
|
* Non-functional changesjonmv2023-10-112-5/+5
|
* Merge pull request #28846 from ↵Henning Baldersheim2023-10-105-11/+34
|\ | | | | | | | | vespa-engine/balder/deliver-reply-before-sending-next-in-sequence Balder/deliver reply before sending next in sequence
| * Initialize explicit to Bollean.FALSEHenning Baldersheim2023-10-101-2/+2
| |
| * Use Boolean instead of ObjectHenning Baldersheim2023-10-101-6/+5
| |
| * Keep the old public constructor.Henning Baldersheim2023-10-103-2/+6
| |
| * Get help from the messenger thread to break possibly very long recursion.Henning Baldersheim2023-10-104-7/+27
| |
| * Deliver reply before sending next message in sequence.Henning Baldersheim2023-10-101-7/+7
| |
* | Merge pull request #28851 from vespa-engine/jonmv/random-fixBjørn Christian Seime2023-10-101-1/+1
|\ \ | | | | | | Jonmv/random fix
| * | Make field volatilejonmv2023-10-101-1/+1
| |/
* | Correct copyright headersJon Bratseth2023-10-096-6/+6
| |
* | Update copyrightJon Bratseth2023-10-09382-389/+389
|/
* Make the control flow more readable. Only check the same condition once.Henning Baldersheim2023-08-141-6/+8
|
* keep rpc target alive until pending rpc invocations completeHåvard Pettersen2023-08-103-7/+12
|
* Update abi-specs after making config class Builders finalgjoranv2023-07-171-4/+8
|
* Add noexcept specifiers.Tor Egge2023-06-061-5/+5
|
* Pass transport and file distributor connection spec to SearchEnvironmentTor Egge2023-05-101-2/+1
| | | | | in preparation for using RankingAssetsBuilder when handling config in streaming search.
* added reset functionHåvard Pettersen2023-03-081-1/+1
|
* use ref_counted for ReplyGateHåvard Pettersen2023-03-087-22/+23
|
* use ref_counted in fnetHåvard Pettersen2023-03-062-4/+4
| | | | | | also get rid of some cleanup functions on reference counted classes enable specifying low-level parameters to addref/subref (cnt/reserve)
* Include thread to get definition of std::threadTor Egge2023-03-051-0/+1
|
* Reduce transitive includes.Henning Baldersheim2023-03-011-0/+1
|
* Add eol at eof.Henning Baldersheim2023-02-271-1/+1
|
* Modernize code and testHenning Baldersheim2023-02-275-30/+27
|
* GC unused MessageTask and ReplyTask. Also modernize some Sequenzer to c++11Henning Baldersheim2023-02-274-88/+12
|
* untangle messagebus from fastosHåvard Pettersen2023-02-246-92/+37
|
* untangle fnet from fastosHåvard Pettersen2023-02-222-5/+1
|
* Remove capability requirement for 'mbus.getVersion'Bjørn Christian Seime2023-02-201-0/+2
|
* Define required capabilities for existing JRT RPC methodsBjørn Christian Seime2023-02-091-1/+3
|
* Drop boost crc, random and tokenizerHenning Baldersheim2023-02-041-10/+4
|
* Consistent naming and correct type.Henning Baldersheim2023-02-031-2/+2
|
* - Use T && f() && to avoid moving temporaries.Henning Baldersheim2023-02-0329-437/+355
| | | | - std::make_unique/make_shared
* - Deinline destructor.Henning Baldersheim2023-02-0127-451/+237
| | | | | | - Move instead of copy = > noexcept move construtors. - make_unique/make_shared. - c++11 for loops
* deinline destructors.Henning Baldersheim2023-02-015-2/+11
|
* Replace synchronized Stack with Deque in feed and query path.Henning Baldersheim2023-01-251-4/+2
|
* Just use Streams.toList as that is unmdifiable.Henning Baldersheim2023-01-181-3/+2
|
* Unify on Streams.toList()Henning Baldersheim2023-01-181-3/+4
|
* use LOG_WOULD_LOG macroArne Juul2023-01-121-3/+3
|
* Add removal deprecationHenning Baldersheim2023-01-031-1/+1
|