| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The strict-aware sort function is responsible for propagating and
tagging strictness throughout the blueprint tree. Use pre-tagged
strictness in fetchPostings, createSearch and createFilterSearch.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/handle-imported-attributes-in-doc-select-fallback-path
Use attributes when evaluating selection expression on full documents
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This addresses an unintended shortcoming in our handling of imported
fields, as these are exposed _only_ through attributes.
Document selection evaluation is automatically optimized in the backend
by pre-filtering documents that can be fully evaluated by exclusively
looking at attribute values (this goes for both selection matching
and mismatching). This is done by cloning the selection AST and
replacing all applicable field value nodes with corresponding attribute
references.
However, if a document _cannot_ be evaluated from attributes alone,
we fall back to reading it fully from the doc store, after which the
original selection is evaluated on it. This is the crux of the problem,
and prior to this commit an expression using both an imported field
and a non-attribute field would fail to be evaluated since the full
document evaluation would not have any knowledge of the attribute.
This commit makes it so that also the full document evaluation will
use a "patched" AST with all possible field references replaced with
attribute lookups. Since we reuse an existing patched AST that was not
otherwise used in this code path, there is no added overhead with this
approach.
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/rewrite-searchcore-fusion-runner-unit-test-to-gtest
Rewrite searchcore fusion runner unit test to gtest.
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/rewrite-searchcore-disk-index-cleaner-unit-test-to-gtest
Rewrite searchcore DiskIndexCleaner unit test to gtest.
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/rewrite-searchcore-feed-token-unit-test-to-gtest
Rewrite searchcore FeedToken unit test to gtest.
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/rewrite-searchcore-feed-and-search-unit-test-to-gtest
Rewrite searchcore feed and search unit test to gtest.
|
| |/ |
|
|/ |
|
|
|
|
|
| |
- This prevents allocating memory buffers, and file descriptors for all fields concurrently.
- It will reduce memory footprint during flush if there are many fields.
|
|
|
|
|
| |
Currently, it can benchmark the following query operators over an attribute vector:
Single term, In, WeightedSet, DotProduct, Or.
|
|
|
|
|
|
| |
for both simple and complex leafs
account for number of inner children in complex leafs
account for seek nesting for complex leafs with children
|
|\
| |
| |
| |
| | |
vespa-engine/arnej/unit-test-verify-ranksetup-streaming
write vsmfields.cfg and add smoke test
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
strict_cost added to all blueprints
separate top-down sort step after optimize
move relative estimate out of blueprint state
optimize all children; to calculate flow stats
leaf defaults:
matching>0.9: est: 0.5, cost: 1.0, strict_cost: 1.0
matching<=0.9: est: rel_est, cost: 1.0, strict_cost: rel_est
|
|
|
|
| |
est_hits.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/balder/gc-use-shared-executor-for-warmup
Use shared executor for warmup and GC warmup executor.
|
| | |
|
|/
|
|
| |
non-strict iterators.
|
|
|
|
| |
right after completing grouping.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Fully GC unused parameter as we now always split phrases.
|
| | |
|
|/
|
|
| |
cost and will liklely make things worse.
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/include-doctype-and-gid-with-metadata-doc-entries
Include doc type name and GID in metadata iteration results
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Document type is fetched from the associated `IPersistenceHandler`
on-demand; it is assumed the lifetime of the pointer must be valid
for the entire lifetime of the iterator itself, as the latter holds
a valid handler snapshot.
For simplicity, it's possible to _not_ pass in a handler, in which
case the doc type name will be implicitly empty.
Some expected `DocEntry` sizes have been adjusted, as we now
report the size of the document type and GID alongside the
base type size.
|
|/
|
|
| |
So it should behave the sameway during fetchPostings too.
|
|\
| |
| |
| |
| | |
vespa-engine/geirst/control-resource-usage-when-in-maintenance
Control resource usage when node in maintenance
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously the following has been adjusted when the node is retired:
1) Lid space compaction - turned off.
2) Flush engine strategy - tuned to reduce disk and CPU usage.
3) Attribute vector compaction - tuned to reduce memory allocations and CPU usage.
In a node retirement scenario documents are being removed from the node, and eventually the node is deleted.
Without the adjustments above a lot of resources are spent "fixing" the results of removing documents,
and the process just takes a lot longer.
A similar set of challenges can occur when a node is set in maintenance,
especially if the node transitions from retired to maintenance.
E.g. this happens when the Vespa version is upgraded in Vespa Cloud.
With this change the resource usage of background jobs are kept in check
for both a retired node and a node in maintenance.
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/vekterli/expose-doc-type-name-from-persistence-handler
Expose document type name from `IPersistenceHandler` interface
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/extend-persistence-conformance-test-wrt-remove-by-gid
Test remove by gid for nonexisting gid and for gid with tombstone.
|
| |/ |
|
|/
|
|
| |
we must only generate posting lists if it is actually benefiscal. If not the fixed cost is too high.
|
| |
|