| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
optimization during get.
|
|
|
|
|
| |
Causes way too much output to be useful. Move to separate
logging that is only visible at spam level.
|
| |
|
| |
|
|
|
|
| |
Logging subsystem includes the correct thread ID either way.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/use-atomic-operation-counting
Ensure operation counting is thread-safe
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the introduction of async response handling, SPI getBucketInfo()
can now be called from multiple threads concurrently. Test was not
originally written with that in mind. Use std::atomic instead of unsafe
raw increment.
For future-proofing, also make other counters atomic.
|
|/
|
|
| |
Move all merge-related metrics out into a separate wrapper for convenience.
|
|
|
|
|
|
|
| |
Currently requires a certain number of repeated failures for a given
cluster state transition. Rationale is that problematic nodes usually
fail for a prolonged amount of time, so it's wise to reduce log noise
from more transient failures. Threshold to be adjusted later as needed.
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
| |
Was originally set to `info` to help track down the source of an
assertion failure that should not be possible to trigger and that only
happened once. Many moons later it has yet to reappear, so removing
some log noise that could only be interesting to me.
|
|\
| |
| | |
Use EXTERNAL_DEPENDS for external dependencies.
|
| | |
|
|\ \
| |/
|/|
| |
| | |
vespa-engine/vekterli/basic-snapshot-support-for-content-node-bucket-db
Vekterli/basic snapshot support for content node bucket db
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* Add working B-tree snapshot read guard impl
* Add placeholder wrapper read guard for legacy DB
* Enforce value const-ness of existing for_each_chunked iteration API
* Return read guard entries by value instead of modifying ref argument
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| | |
vespa-engine/balder/let-sequencer-type-be-configurable
Let sequencer type be configurable
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| | |
vespa-engine/vekterli/remove-legacy-distributor-bucket-database-implementation
Remove legacy distributor bucket DB implementation and config wiring
|
| | |
|
|\ \
| |/
|/| |
Arnej/less exit calls 2
|
| | |
|
|/
|
|
|
|
| |
* Rewrite distributor B-tree DB in terms of generic implementation
* Move out merger and read guard types so they can be used with
both content and distributor databases.
|
|
|
|
|
|
| |
I add a stricter sendReplyDirectly interface where the caller guarantees that he has no hidden
requirements that the calle should be aware of.
This will avoid a task switch when propagating the reply.
|
|\
| |
| |
| |
| | |
vespa-engine/balder/avoid-dispatch-on-reply-in-bucket-manager
Bucket manager also dispatches directly.
|
| | |
|
| | |
|
|/ |
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/btree-bucket-db-support-on-content-node
Create generic B-tree bucket DB and content node DB implementation
|
| |
| |
| |
| |
| | |
Also rewrite some GMock macros that triggered Valgrind warnings
due to default test object printers accessing uninitialized memory.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the first stage of removing the legacy DB implementation.
Support for B-tree specific functionality such as lock-free snapshot
reads will be added soon. This commit is just for feature parity.
Abstract away actual database implementation to allow it to
be chosen dynamically at startup. This abstraction does incur
some overhead via call indirections and type erasures of callbacks,
so it's likely it will be removed once the transition to the
new B-tree DB has been completed.
Since the algorithms used for bucket key operations is so similar
between the content node and distributor, a generic B-tree backed
bucket database has been created. The distributor DB will be rewritten
around this code very soon.
Due to the strong coupling between bucket locking and actual DB
implementation details, the new bucket DB has a fairly significant
code overlap with the legacy implementation. This is to avoid
spending time abstracting away and factoring out code for a
legacy implementation that is to be removed entirely anyway.
Remove existing LockableMap functionality not used or that's
only used by tests.
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
| |
Existing naive prime-based solution was susceptible to scheduling
operations for the subtree of a superbucket in one strand alone,
despite previous attempts to disperse this using prime number
multiplication. This would put a serious limiter on parallelism
for super bucket locality-sensitive reads such as streaming search
visitors.
|