| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
users of Slime.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/balder/use-wait_until-to-reduce-need-for-sampling-time
Use wait_until and a deadline instead of a timeout.
|
| | |
|
| |
| |
| |
| | |
This reduces the need to smaple the time significantly.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Instead of having one abstract throttler created from bootstrap config,
explicitly create one dynamic and one unlimited throttler and allow for
atomically switching between the two based on received config.
The `MergeHandler` component will now always fetch the current throttler
from the `FileStorHandler` instead of caching it at construction time.
This commit removes the `restart` annotation on the existing throttler
type config enums.
|
|
|
|
|
|
| |
based on base VESPA_TIMER_HZ to use for random waiting
when doing a poll based appraoch.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/fix-storage-slobrok-threading-edge-cases
Gracefully flush pending Slobrok task on content node RPC teardown [run-systemtest]
|
| |
| |
| |
| |
| |
| |
| | |
Prior code had an ad-hoc (and undocumented) sleep that would hopefully
delay the rest of the test until there was mutual Slobrok visibility, but
which was not guaranteed and usually over-pessimized. Replace with
explicit checks of Slobrok mirrors.
|
| |
| |
| |
| |
| | |
Avoids race between transport connection destruction in one FNET thread
and processing unregistration task in another FNET thread.
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/configurable-per-merge-feed-op-throttling
Make it possible to configure what aspects of merges should be throttled [run-systemtest]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add live config for choosing whether merges should be throttled
on a per-feed operation (`MergeHandler`) level, or on an `ApplyBucketDiff`
persistence thread level.
This is intended to be a temporary feature while we do experiments, so
some liberties are taken with regards to how holes are punched in the
various abstraction layers.
|
|/
|
|
|
| |
- Also use the common transport for config subscriptions.
- Put The TransportConfig in the fnet namespace.
|
| |
|
| |
|
|
|
|
| |
proton.
|
|
|
|
| |
frequency of various tasks.
|
|
|
|
| |
from config.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/fix-data-race-in-persistence-test-mock
Fix data race for persistence provider test mock
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the cluster controller publishes a cluster state where at least
one node is marked as maintenance in the default space but is up
in the global space, global bucket merges are pending in the cluster.
We want these merges to complete ASAP, and to avoid starvation caused
by distributors that finish their global merges quicker than others
(or whose global bucket ops get preempted), allow for _completely_
inhibiting merges to buckets in the default space when global buckets
are pending.
Requires a live config flag to be set to actually be taken into account
in the bucket synchronization state checker.
Flag is tracked per distributor bucket space (per stripe) and is
automatically cleared once a cluster state is received without pending
global merges.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/add-distributor-config-for-default-space-merge-inhibition
Add config for default bucket space merge inhibition during global merges
|
| |
| |
| |
| | |
Not wired to anything yet, but allows for feature flag to be created.
|
| | |
|
|/ |
|
|
|
|
|
| |
- Use existing predefined types.
- Allow for better management by allowing large string vectors to be mmapped.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
vespa-engine/geirst/tag-tasks-and-threads-with-cpu-category
Tag tasks and threads with cpu category
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
If a node fails to completely start up due to e.g. failures
fetching bootstrap config, it's possible for the storage component
chain to have been created but not yet completely initialized.
Attempts to gracefully abort startup will still invoke the component
`onClose()` methods, at which point the components must be able to
handle a partially initialized state. Let `ModifiedBucketChecker`
handle that its worker thread was not created when closing, as
this will happen when `onOpen()` is never called.
|
|
|
|
|
|
|
|
| |
Start moving internal `stor-server` throttling config to use struct
config instead of separate fields, as this is more flexible and better
matches how we configure throttling elsewhere. For now, let dynamic
throttling be enabled via both the new and the old config enum.
Config model will be updated to use the new config struct shortly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now always uses `DynamicThrottlePolicy` instead of `StaticThrottlePolicy`,
but by default hardwires the min/max limits to _functionally_ act
as if a static policy were in place.
If dynamic throttling is enabled, forwarded (unordered) merges are
now busy-bounced instead of immediately accepted into the pending window
if the window size is exhausted. This so that dynamic throttling
windows on nodes earlier in the forwarding chain can be sized down
implicitly (thus the _dynamic_ aspect of it all). This is done to help
control resource usage and content node queue sizes.
Dynamic throttling may be enabled/disabled live via config. If enabled,
the following (live) config is supported:
* Minimum window size
* Maximum window size
* Window size increment
More may be added (and defaults changed) as appropriate.
|
|
|
|
| |
Also move the remaining throttler unit tests to vespalib.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/disallow-none-fieldset-for-visitors
Expicitly reject "none"-fieldset for external visitors
|
| |
| |
| |
| |
| |
| |
| | |
It does not make sense for a client to run a visitor that inherently
cannot return any data at all. Explicitly check for, and reject, `[none]`
fieldsets and emit a hopefully helpful error message to use `[id]`
instead.
|
| | |
|
|\ \
| |/
|/| |
Wire in control of whether taskLimit is hard.
|
| | |
|