aboutsummaryrefslogtreecommitdiffstats
path: root/documentapi
Commit message (Collapse)AuthorAgeFilesLines
...
* documentapi does not need metricsHenning Baldersheim2022-05-201-1/+0
|
* Prevent NPE when using the deprecated getError accessorHenning Baldersheim2022-04-251-1/+5
|
* Merge pull request #22201 from vespa-engine/bratseth/inputs-2Lester Solbakken2022-04-252-1/+4
|\ | | | | Bratseth/inputs 2
| * Resolve rank profile inputsJon Bratseth2022-04-212-1/+4
| |
* | Discard messages instead of replying laterjonmv2022-04-202-7/+7
| |
* | GC unused importHenning Baldersheim2022-04-201-8/+1
| |
* | Update documentapi/src/main/java/com/yahoo/documentapi/Result.javaHenning Baldersheim2022-04-201-1/+1
| | | | | | Co-authored-by: Jon Bratseth <bratseth@gmail.com>
* | Use com.yahoo.messagebus.Error instead of java.lang.ErrorHenning Baldersheim2022-04-196-13/+54
| |
* | Wait in destinatino until RPC layer times out requestjonmv2022-04-192-55/+38
| |
* | Add retries to broken message bus test setupjonmv2022-04-193-13/+23
| |
* | Merge pull request #22105 from vespa-engine/arnej/just-new-config-filesHenning Baldersheim2022-04-122-126/+174
|\ \ | |/ |/| switch to new-style config
| * switch to new-style configArne H Juul2022-04-122-126/+174
| |
* | GC unused importHenning Baldersheim2022-04-111-2/+0
| |
* | ThrottlePolicyOverride -> ThrottlePolicyHenning Baldersheim2022-04-115-20/+12
| |
* | Avoid * imports.Henning Baldersheim2022-04-113-12/+33
| |
* | - Allow control of throttlepolicy per session.Henning Baldersheim2022-04-118-17/+51
|/ | | | | - Move tests to same namespace as code to avoid polluting the public interface. - Expose the throttlepolicy from SourceSession to avoid double bookeeping.
* Deprecate load types from Java APIsTor Brede Vekterli2022-04-0516-21/+95
| | | | | | | | | | | Load types have not been used in practice for years, and supporting them in backend metrics etc. has long since been lacking. Prepare for removing these on Vespa 8. Most callsites are unchanged, aside from presumed safe changes such as constructors used by dependency injection. Have added new overloads without load types where these did not already exist to allow for an orderly transition.
* Deprecate DocumentAPI methods using explicit operation priorityTor Brede Vekterli2022-04-0110-10/+76
| | | | | This is functionality that made more sense when we had spinning drives and no async write scheduling in the backend. Going away on Vespa 8.
* CloneablePtr -> std::unique_ptrHenning Baldersheim2022-03-291-2/+1
|
* Update tests to take vespalib::string size into accountTor Brede Vekterli2022-03-241-1/+1
|
* Use vespalib::string in TestAndSetConditionTor Brede Vekterli2022-03-241-3/+5
| | | | | Avoids some implicit conversions. Add `starts_with` to `vespalib::string` and `vespalib::stringref` to allow drop-in replacement for Document API code.
* Revert "Use vespalib::string in TestAndSetCondition"Tor Brede Vekterli2022-03-241-5/+3
|
* Use vespalib::string in TestAndSetConditionTor Brede Vekterli2022-03-241-3/+5
| | | | | Avoids some implicit conversions. Add `starts_with` to `vespalib::string` and `vespalib::stringref` to allow drop-in replacement for Document API code.
* Introducing fuzzy searchAlexey Chernyshev2022-03-231-1/+2
|
* Reduce visibility of document::DocumentHenning Baldersheim2022-03-076-10/+13
|
* Remove unused member variable.Tor Egge2022-02-272-3/+1
|
* Remove inlining warnings (documentapi).Tor Egge2022-02-261-0/+8
|
* Add missing filesHenning Baldersheim2022-02-232-0/+51
|
* Ensure that internal state of ExternSlobrokPolicy and ExternPolicy is ↵Henning Baldersheim2022-02-237-92/+65
| | | | consistent with respect to transport, supervisor, and mirror.
* Make ConfigUri constructors explicit and use same context where possible in ↵Henning Baldersheim2022-02-201-4/+4
| | | | proton.
* add special DocumentOnly fieldset in Java as wellArne H Juul2022-02-155-0/+10
| | | | | | * should have same behavior in Java and C++ * extend unit tests to verify * note various places where we want to change the default on Vespa 8 branch
* Include needed header files.Tor Egge2022-02-141-0/+1
|
* Reduce code visibility and include only what you need from config library.Henning Baldersheim2022-02-067-32/+45
|
* Avoid visitor reply processing starvation and runaway throttlingTor Brede Vekterli2022-02-031-3/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We both send requests and process replies in the context of a dedicated task executor pool. However, MessageBus sending and reply receiving happens in the context of entirely separate threads. If the backend responds very quickly to visitor requests (such as if buckets are empty), this can leave us in the following awkward position: 1. Replies arrive from backend, open up the throttle window, reply handling task gets pushed onto executor queue (but not yet executed). 2. Send loop below continuously get a free send slot, keeps sending visitors and filling up the set of pending buckets in the progress token. 3. Since visitor session is busy-looping in the send task, reply processing is consequently entirely starved until the MessageBus throttle window is bursting at the seams. This can effectively nullify the effects of the throttling policy, especially if it's dynamic. But a static throttle policy with a sufficiently high max window size will also potentially cause a runaway visitor train since the active window size keeps getting decreased by backend replies. To get around this, we explicitly check for concurrently scheduled message handling tasks from the transport layer, breaking the loop if at least one handler has been scheduled. This also has the (positive) effect of draining all reply tasks before we start sending more work downstream. Since visitor session progress is edge-triggered and progresses exclusively by sending new visitors in reply handling tasks, it's critical that we never end up in a situation where we have no pending CreateVisitors (or scheduled tasks), or we risk effectively hanging the session. We must therefore be very careful that we only exit the send loop if we _know_ we have at least one pending task enqueued that will ensure session progress. This is a subtle thread interaction issue and cannot readily be unit tested, but manual testing has confirmed both the underlying issue and that the throttling policy does not run amok after the fix has been applied.
* Internally track number of buckets splits and merged for ProgressTokenTor Brede Vekterli2022-02-021-1/+7
| | | | Not directly exposed, will be used in the case of heap dump analysis.
* Merge pull request #21013 from vespa-engine/deprecate-config.subscriptionHarald Musum2022-02-023-0/+3
|\ | | | | Deprecate config.subscription
| * Add SuppressWarnings for removal of config.subscription types.gjoranv2022-02-023-0/+3
| |
* | Merge pull request #21001 from ↵Henning Baldersheim2022-01-316-8/+32
|\ \ | | | | | | | | | | | | vespa-engine/vekterli/deprecate-legacy-visitor-functionality Deprecate legacy visitor functionality
| * | Deprecate remnants of two-phase visiting APIs and usageTor Brede Vekterli2022-01-316-8/+32
| |/ | | | | | | | | | | | | | | | | | | This has not been relevant since "orderdoc" was a thing, and it was never really a thing in the first place. Unfortunately, due to an oversight in how the backend propagates visitor statistics, the internal usage of 2nd pass statistics cannot be fully removed before Vespa 8 (where the backend is known to not set the deprecated statistics fields).
* / Don't set deprecated fields when aggregating visitor statisticsTor Brede Vekterli2022-01-312-2/+4
|/ | | | | | | | 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.
* - Synchronize when removing nodes not present anymore. This simplifies code ↵Henning Baldersheim2022-01-121-13/+13
| | | | | | | at neglible cost that removes the race on size(). - Also use explicit AtomicReference to get an Immutable snapshot when doing a random sample. - Done after observing IllegalArgumentException due to negative argument to Random.nextInt(bound).
* unify java warningsArne H Juul2022-01-061-7/+0
| | | | | * these were stricter than in parent, but to simplify we can just use compiler args from parent
* GC deprecated junit assertThat.Henning Baldersheim2021-12-211-9/+8
|
* Update ABI specTor Brede Vekterli2021-12-201-1/+31
|
* Don't trigger implicit ContentPolicy random send fallback on expected ↵Tor Brede Vekterli2021-12-204-26/+144
| | | | | | | | | | | | | | | | | | | | | transient errors The `ContentPolicy` has a failure handling policy where more than _n_ error replies (a small number in practice) will trigger an implicit random send instead of using the cached cluster state. This is to force rediscovery of the actual cluster state, and is useful if a node is bad but we're not sending feed to enough other nodes to figure it out from them. However, certain error codes may be used frequently by the content layer for purposes that do _not_ indicate that a change in cluster state may have happened, and should therefore not be counted as errors that may indicate a bad node: * `ERROR_TEST_AND_SET_CONDITION_FAILED`: may happen for any mutating operation that has an associated TaS condition. Technically an `APP_FATAL_ERROR` since resending doesn't make sense. * `ERROR_BUSY`: may happen for concurrent mutations and if distributors are in the process of changing bucket ownership and the grace period hasn't passed yet. Also sent if queues are full and client policy should back off a bit. None of these are errors as per se.
* Don't emit a bunch of debug logs by default in ContentPolicy unit testsTor Brede Vekterli2021-12-201-1/+1
|
* most unit tests can run with just 1 network threadArne H Juul2021-12-164-5/+5
|
* destroy more framesArne H Juul2021-12-161-0/+12
|
* Merge pull request #20536 from vespa-engine/arnej/hunting-unit-test-fails-1Jon Marius Venstad2021-12-161-1/+9
|\ | | | | Arnej/hunting unit test fails 1
| * stop standalone slobroks when test is finishedArne H Juul2021-12-151-1/+9
| |