aboutsummaryrefslogtreecommitdiffstats
path: root/document
Commit message (Collapse)AuthorAgeFilesLines
* Support serializing document remove operation to json formatHarald Musum2024-03-115-1/+26
|
* Merge pull request #30545 from ↵Tor Egge2024-03-112-23/+12
|\ | | | | | | | | vespa-engine/toregge/rewrite-struct-anno-unit-test-to-gtest Rewrite struct anno unit test to gtest.
| * Fix typo in struct anno unit test.Tor Egge2024-03-111-1/+1
| |
| * Rewrite struct anno unit test to gtest.Tor Egge2024-03-092-23/+12
| |
* | Rewrite annotation serializer unit test to gtest.Tor Egge2024-03-092-76/+62
|/
* Strip invalid unicode based on system propertyjonmv2024-03-081-5/+9
|
* Minor cleanups of serialization versions and buffer sizesTor Brede Vekterli2024-03-044-8/+5
|
* Explicitly use HEAD serializer for document update instancesTor Brede Vekterli2024-02-231-0/+1
| | | | | | | For some assuredly exciting reason, `DocumentUpdate.serialize()` by default uses the v6 protocol version instead of the HEAD version. This caused tensor updates (which are only available on the HEAD version) to fail serialization.
* Merge pull request #30300 from vespa-engine/vekterli/documentapi-over-protobufTor Brede Vekterli2024-02-215-2/+14
|\ | | | | Add new Protobuf-based MessageBus DocumentAPI protocol
| * Add new Protobuf-based MessageBus DocumentAPI protocolTor Brede Vekterli2024-02-165-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Use auto, braced initialiser and noexceptHenning Baldersheim2024-02-192-3/+3
|/
* - Drop the optimization from long to int and just use long throughout.Henning Baldersheim2024-02-101-1/+1
| | | | - That enables that numeric hashes are also handled efficiently, without resorting to strings.
* - Use numericLabel over label for address manipulation.Henning Baldersheim2024-02-011-1/+1
| | | | - Only use label when actual string representation is needed.
* Deinline document::config_builder::DatatypeConfig destructor.Tor Egge2024-01-292-1/+2
|
* Revert "Revert "Jonmv/reapply leaner token buffer""Tor Brede Vekterli2024-01-269-329/+757
|
* Revert "Jonmv/reapply leaner token buffer"Jon Marius Venstad2024-01-269-757/+329
|
* Check for "fields" fieldjonmv2024-01-262-1/+11
|
* Handle other fields in streaming document JSON parsingjonmv2024-01-264-21/+100
|
* Revert "Merge pull request #30067 from ↵jonmv2024-01-269-327/+666
| | | | | | | vespa-engine/revert-30038-jonmv/leaner-token-buffer" This reverts commit b771fbe5fe648cf4c64e04341542e11c2e21cb9d, reversing changes made to 7b578506b5c4c59f4273e74af1f0db4a74f82175.
* Revert "Jonmv/leaner token buffer"Jon Marius Venstad2024-01-259-666/+327
|
* Apply suggestions from code reviewJon Marius Venstad2024-01-252-2/+5
|
* Revert "Improve error detection"jonmv2024-01-241-4/+1
| | | | This reverts commit c5a7723fb522a5aa2cff1a8662e1ddffc80c9de6.
* Add new LazyTokenBuffer, and wire it into existing tensor parse testsjonmv2024-01-246-10/+277
|
* More test blocksjonmv2024-01-241-196/+312
|
* Remove redundant branchjonmv2024-01-241-10/+0
|
* Simplify a bitjonmv2024-01-242-39/+19
|
* Improve error detectionjonmv2024-01-231-1/+4
|
* Remove backwards token buffer APIsjonmv2024-01-234-79/+62
|
* Restore unit test JSONJon Marius Venstad2024-01-231-3/+6
|
* Use more text blocks in json parser unit testjonmv2024-01-231-565/+837
|
* Improve readabilityjonmv2024-01-231-3/+5
|
* Test morejonmv2024-01-231-0/+25
|
* Fix parsing of recursive "match" update syntaxjonmv2024-01-233-97/+89
|
* Document more shortcomings with unit testsjonmv2024-01-231-1/+51
|
* Add some more unit tests for json document reader updat parsingjonmv2024-01-232-14/+100
|
* Iterator from correct placejonmv2024-01-191-1/+1
|
* HashMap is enough, no accesses requires insertion order.Henning Baldersheim2024-01-161-3/+4
|
* Minor code healthHenning Baldersheim2024-01-163-20/+12
|
* - Only call getKey once.Henning Baldersheim2024-01-162-31/+21
| | | | - Just use a presized array of native ints, instead of LinkedList.
* Reduce mixing of vespalib testkit and gtest.Tor Egge2024-01-0524-39/+36
|
* Reapply "add parsing of special strings for inf/nan cell values"Arne Juul2023-12-142-2/+6
| | | | This reverts commit d976f82207c09b3215661e1d034ae9a42f28a63d.
* Revert "add parsing of special strings for inf/nan cell values"Henning Baldersheim2023-12-132-6/+2
|
* add parsing of special strings for inf/nan cell valuesArne Juul2023-12-112-2/+6
|
* Move to container core due to OSGI, keep a copy in testutil for use in ↵Henning Baldersheim2023-11-242-4/+3
| | | | tests in no OSGI modules.
* Move Jackson util from vespajlib to container-core.Henning Baldersheim2023-11-241-1/+0
|
* jackson 2.16 changes some of its default settings so we consolidate our use ↵Henning Baldersheim2023-11-232-9/+8
| | | | | | of the ObjectMapper. Unless special options are used, use a common instance, or create via factory metod.
* Revert "Merge pull request #29328 from ↵Jon Bratseth2023-11-149-55/+44
| | | | | | | vespa-engine/revert-29314-bratseth/casing-take-2" This reverts commit a72e949533a46d665440a9c72ca2b8fb58f3a9c3, reversing changes made to 944d635d00e165166508ef23399e9ed65a87a9c8.
* Revert "Bratseth/casing take 2"Harald Musum2023-11-139-44/+55
|
* Don't output valueJon Bratseth2023-11-102-5/+4
|
* Prefer first stem to original if non equalJon Bratseth2023-11-108-53/+43
|