| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
vespa-engine/toregge/rewrite-documentapi-policies-unit-test-to-gtest
Rewrite documentapi policies unit test to gtest.
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/rewrite-documentapi-replymerger-unit-test-to-gtest
Rewrite documentapi reply merger unit test to gtest.
|
| |/ |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Message-specific test cases are no longer delegated to a
quasi-framework in a parent class, but implemented with regular
test case functions.
Clean up and move existing `TestBase` into a dedicated `MessageFixture`
class. Use `std::filesystem::path` instead of plain strings for file
paths.
This also merges 3 standalone test apps into 1 GTest runner.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
Updates of distribution config and cached cluster state
are now both thread safe. Move to `shared_ptr` to allow for
taking immutable strong refs.
Also remove pointless two-phased config switch-over in favor
of directly updating value inside lock.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
messages.
|
| |
|
| |
|
|
|
|
| |
- std::make_unique/make_shared
|
|
|
|
|
|
| |
- Move instead of copy = > noexcept move construtors.
- make_unique/make_shared.
- c++11 for loops
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
consistent with respect to transport, supervisor, and mirror.
|
|
|
|
|
|
|
|
| |
The 1st/2nd pass functionality has been deprecated for a long time,
but unfortunately the documents/bytes visited stats have been wired
to be returned as part of 2nd phase statistics instead of the regular
higher-level fields. This commit changes this, but the serialization
will still have to remain in place until Vespa 8.
|
| |
|
|
|
|
|
|
|
| |
* For C++ code this introduces a "document::config" namespace, which will
sometimes conflict with the global "config" namespace.
* Move all forward-declarations of the types DocumenttypesConfig and
DocumenttypesConfigBuilder to a common header file.
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 75b2e4c11ea6463c335f1c77dab3fdb5493e5600.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
a smaller memory footprint.
|
|
|
|
|
| |
- Avoid needing the definition of Error everywhere.
- use std::make_xxx and other c++11 constructs.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
balder/use-duration-in-messagebus-and-storageapi-rebased-1
|
| |
| |
| |
| |
| | |
Renamed Timer -> ScheduledExecutor.
Do not include thread.h when not needed in header files.
|
|/
|
|
|
| |
Conflicts:
messagebus/src/vespa/messagebus/testlib/testserver.cpp
|