Vespa Product Updates, April 2020

Kristian Aune

Kristian Aune

Head of Customer Success, Vespa


In the previous product update,
we mentioned Ranking with LightGBM Models, Matrix Multiplication Performance, Benchmarking Guide, Query Builder and Hadoop Integration.

This month, we’re excited to share the following updates:

Improved Performance for Large Fan-out Applications

Vespa container nodes execute queries by fanning out to a set of content nodes evaluating parts of the data in parallel. When fan-out or partial results from each node is large, this can cause bandwidth to run out.
Vespa now provides an optimization which lets you control the tradeoff between the size of the partial results
vs. the probability of getting a 100% global result.
As this works out, tolerating a small probability of less than 100% correctness
gives a large reduction in network usage.
Read more.

Improved Node Auto-fail Handling

Whenever content nodes fail, data is auto-migrated to other nodes.
This consumes resources on both sender and receiver nodes,
competing with resources used for processing client operations.
Starting with Vespa-7.197, we have improved operation and thread scheduling,
which reduces the impact on client document API operation latencies
when a node is under heavy migration load.

CloudWatch Metric Import

Vespa metrics can now be pushed or pulled into
AWS CloudWatch.
Read more in monitoring.

CentOS 7 Dev Environment

A development environment
for Vespa on CentOS 7 is now available.
This ensures that the turnaround time between code changes and running unit tests and system tests is short,
and makes it easier to contribute to Vespa.


About Vespa: Largely developed by Yahoo engineers,
Vespa is an open source big data processing and serving engine.
It’s in use by many products, such as Yahoo News, Yahoo Sports, Yahoo Finance, and the Verizon Media Ad Platform.
Thanks to feedback and contributions from the community, Vespa continues to grow.

We welcome your contributions and feedback (tweet
or email) about any of these new features or future improvements you’d like to request.

Vespa Newsletter, April 2022 | Vespa Blog

Kristian Aune

Kristian Aune

Head of Customer Success, Vespa


In the previous update,
we mentioned faster node recovery and re-balancing, reindexing speed, WeakAnd, synonyms and language detection.
Today, we’re excited to share the following updates:

In the news

In Dimitry Khan’s
Vector Podcast,
enjoy Jo Kristian Bergum from the Vespa Team in the

Journey of Vespa from Sparse into Neural Search.
This is a great 90 minutes of Vespa, vector search, multi-stage ranking and approximate nearest neighbor, and more!

Compact tensor format

Vespa now supports short form parsing for unbound dense (e.g. tensor(d0[],d1[])),
and partially unbound (e.g. tensor(d0[],d1[128]).
Available since Vespa 7.459.15.
Refer to document-json-format.html#tensor and
presentation.format.tensors.

Modular rank profiles

A rank-profile
is a named set of ranking expression functions and -settings which can be selected in the query.
Complex applications typically have multiple schemas and rank profiles.
Now, multiple inheritance of rank profiles and support for defining profiles in separate files
is supported from Vespa 7.538.

Grouping

Result Grouping is used to aggregate data in fields in query hits,
to implement use cases like number of items per category, inventory check, maximum values per category, etc.
As the aggregation functions possibly spans the full corpus, temporary memory usage can be a problem for some queries.
Use the new configuration parameters
defaultMaxGroups,
defaultMaxHits and
globalMaxGroups
to control grouping result set sizes.

pyvespa

pyvespa is Vespa’s simplified python bindings for query and ranking experiments.
With pyvespa 0.16.0, it is possible to specify the
Docker image –
use this for M1 testing, ref pyvespa#231.
With pyvespa 0.17.0, one can deploy to Docker using POST, without using a disk mount –
see pyvespa#296.

New query guides

Vespa has unmatched query performance for (approximate) nearest neighbor search
with filters and real-time update-able fields.
It can however be a challenge to balance the cost/performance tradeoffs to get the configuration optimal.
The new guides practical search performance
and nearest neighbor search are great resources,
exploring multithreaded queries, use of embeddings, HNSW configuration and multivalue query operators and more –
including advanced query tracing.

Get ready for Vespa 8

Vespa uses semantic versioning and releases new features continuously on minor versions.
Major version changes are used to mark versions which break compatibility,
by removing previously deprecated features, changing default values and similar.
The next time this happens will be in June, when we release Vespa 8.
Review the release notes to make sure your applications
are compatible with Vespa 8.