Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Tag Protobuf protocol boundary version and add binary test files | Tor Brede Vekterli | 2024-02-21 | 2 | -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 protocol | Tor Brede Vekterli | 2024-02-16 | 3 | -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 requests | jonmv | 2023-11-30 | 2 | -15/+11 |
| | |||||
* | Non-funcitonal changes | jonmv | 2023-11-30 | 3 | -19/+17 |
| | |||||
* | Wait for first reply to be set, in test thread | jonmv | 2023-10-18 | 1 | -1/+4 |
| | |||||
* | Discard sequenced messages if task destroyed before run | jonmv | 2023-10-16 | 2 | -4/+4 |
| | |||||
* | Fix test to fail when sequenced-task discards it on destroy() | jonmv | 2023-10-13 | 1 | -6/+13 |
| | |||||
* | Test sequencer with messenger and deep reply->send-next recursion | jonmv | 2023-10-13 | 2 | -2/+46 |
| | |||||
* | Revert "Merge pull request #28922 from ↵ | jonmv | 2023-10-13 | 4 | -11/+33 |
| | | | | | | | 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 Venstad | 2023-10-13 | 4 | -33/+11 |
| | |||||
* | Revert invalid "simplification" | Jon Marius Venstad | 2023-10-12 | 1 | -1/+1 |
| | |||||
* | Info log message when MbusServer is finally destroyed | jonmv | 2023-10-11 | 2 | -2/+4 |
| | |||||
* | Non-functional changes | jonmv | 2023-10-11 | 2 | -5/+5 |
| | |||||
* | Merge pull request #28846 from ↵ | Henning Baldersheim | 2023-10-10 | 4 | -11/+33 |
|\ | | | | | | | | | vespa-engine/balder/deliver-reply-before-sending-next-in-sequence Balder/deliver reply before sending next in sequence | ||||
| * | Initialize explicit to Bollean.FALSE | Henning Baldersheim | 2023-10-10 | 1 | -2/+2 |
| | | |||||
| * | Use Boolean instead of Object | Henning Baldersheim | 2023-10-10 | 1 | -6/+5 |
| | | |||||
| * | Keep the old public constructor. | Henning Baldersheim | 2023-10-10 | 2 | -2/+5 |
| | | |||||
| * | Get help from the messenger thread to break possibly very long recursion. | Henning Baldersheim | 2023-10-10 | 4 | -7/+27 |
| | | |||||
| * | Deliver reply before sending next message in sequence. | Henning Baldersheim | 2023-10-10 | 1 | -7/+7 |
| | | |||||
* | | Merge pull request #28851 from vespa-engine/jonmv/random-fix | Bjørn Christian Seime | 2023-10-10 | 1 | -1/+1 |
|\ \ | | | | | | | Jonmv/random fix | ||||
| * | | Make field volatile | jonmv | 2023-10-10 | 1 | -1/+1 |
| |/ | |||||
* | | Correct copyright headers | Jon Bratseth | 2023-10-09 | 6 | -6/+6 |
| | | |||||
* | | Update copyright | Jon Bratseth | 2023-10-09 | 380 | -387/+387 |
|/ | |||||
* | Make the control flow more readable. Only check the same condition once. | Henning Baldersheim | 2023-08-14 | 1 | -6/+8 |
| | |||||
* | keep rpc target alive until pending rpc invocations complete | Håvard Pettersen | 2023-08-10 | 3 | -7/+12 |
| | |||||
* | Add noexcept specifiers. | Tor Egge | 2023-06-06 | 1 | -5/+5 |
| | |||||
* | Pass transport and file distributor connection spec to SearchEnvironment | Tor Egge | 2023-05-10 | 1 | -2/+1 |
| | | | | | in preparation for using RankingAssetsBuilder when handling config in streaming search. | ||||
* | added reset function | Håvard Pettersen | 2023-03-08 | 1 | -1/+1 |
| | |||||
* | use ref_counted for ReplyGate | Håvard Pettersen | 2023-03-08 | 7 | -22/+23 |
| | |||||
* | use ref_counted in fnet | Håvard Pettersen | 2023-03-06 | 2 | -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::thread | Tor Egge | 2023-03-05 | 1 | -0/+1 |
| | |||||
* | Reduce transitive includes. | Henning Baldersheim | 2023-03-01 | 1 | -0/+1 |
| | |||||
* | Add eol at eof. | Henning Baldersheim | 2023-02-27 | 1 | -1/+1 |
| | |||||
* | Modernize code and test | Henning Baldersheim | 2023-02-27 | 5 | -30/+27 |
| | |||||
* | GC unused MessageTask and ReplyTask. Also modernize some Sequenzer to c++11 | Henning Baldersheim | 2023-02-27 | 4 | -88/+12 |
| | |||||
* | untangle messagebus from fastos | Håvard Pettersen | 2023-02-24 | 5 | -91/+37 |
| | |||||
* | untangle fnet from fastos | Håvard Pettersen | 2023-02-22 | 2 | -5/+1 |
| | |||||
* | Remove capability requirement for 'mbus.getVersion' | Bjørn Christian Seime | 2023-02-20 | 1 | -0/+2 |
| | |||||
* | Define required capabilities for existing JRT RPC methods | Bjørn Christian Seime | 2023-02-09 | 1 | -1/+3 |
| | |||||
* | Drop boost crc, random and tokenizer | Henning Baldersheim | 2023-02-04 | 1 | -10/+4 |
| | |||||
* | Consistent naming and correct type. | Henning Baldersheim | 2023-02-03 | 1 | -2/+2 |
| | |||||
* | - Use T && f() && to avoid moving temporaries. | Henning Baldersheim | 2023-02-03 | 29 | -437/+355 |
| | | | | - std::make_unique/make_shared | ||||
* | - Deinline destructor. | Henning Baldersheim | 2023-02-01 | 27 | -451/+237 |
| | | | | | | - Move instead of copy = > noexcept move construtors. - make_unique/make_shared. - c++11 for loops | ||||
* | deinline destructors. | Henning Baldersheim | 2023-02-01 | 5 | -2/+11 |
| | |||||
* | Replace synchronized Stack with Deque in feed and query path. | Henning Baldersheim | 2023-01-25 | 1 | -4/+2 |
| | |||||
* | Just use Streams.toList as that is unmdifiable. | Henning Baldersheim | 2023-01-18 | 1 | -3/+2 |
| | |||||
* | Unify on Streams.toList() | Henning Baldersheim | 2023-01-18 | 1 | -3/+4 |
| | |||||
* | use LOG_WOULD_LOG macro | Arne Juul | 2023-01-12 | 1 | -3/+3 |
| | |||||
* | Add removal deprecation | Henning Baldersheim | 2023-01-03 | 1 | -1/+1 |
| | |||||
* | We have relied on dynamic throttling for 12 years or so. | Henning Baldersheim | 2023-01-03 | 3 | -67/+12 |
| | | | | Time to let the old one go. |