Manticore Search 2.7.0 GA release

We are pleased to announce the release of Manticore Search 2.7.0 GA.

Prebuilt packages available for Debian,Ubuntu, Red Hat/CentOS, Windows and OSX can be downloaded from here. For Docker image check official repository.

Internal  improvements

This version introduce reworks to several internal components, which were needed to both  modernize the code and flows. These changes are transparent and there is no requirement for upgrading from older versions or from Sphinx 2.x.

To address the performance impact of Spectre and Meltdown patches the number of syscalls has been reduced where possible.

The management of local indexes has been reworked. We switched away from RW lock mechanisms to a mode where indexes are independent of query threads. This means rotations are not blocked anymore by running queries or incoming queries are not stalled by a rotation in progress.

Configuration reloads now take full effect. For example in previous versions a reconfigured index required  a daemon restart.

Connections to remote  nodes are fully independent. The proto has been improvement as now the handshake and data (query) are sent in a single packet (previously handshake was sent first). This should improve latencies and reduce data traffic between nodes. The proto changes work with remote nodes using older versions.

TCP Fast Open can be used between master and nodes if it’s enabled system wide.

Client polling until now it was using epoll/kqueue and would fallback to poll/select if the first were not available. poll/select mode have been completely dropped, which means Manticore doesn’t support kernels without epoll support( epoll was added in 2012 in 2.5.44). On Windows platform we switched from wsapoll to I/O completion ports.

New features and improvements

Percolate Queries filters can  contain expressions and can be used with JSON and string attributes. A new option `docs_id` can be used to specify document id used at result set.

SHOW STATUS now includes daemon version as well as the mysql_version_string.

Distributed indexes can work with FEDERATED.

Added dummy SHOW NAMES COLLATE and SET wait_timeout for better compatibility with ProxySQL.

Suffixes g,G,t,T can be used in config file for variables expressing data sizes.

Changes

Host weights calculated in HA weighted strategies are now expressed as float percents (0..99.99) instead of uint16 (0..65535).

Starting with this version we no longer offer a build for Debian Wheezy.

A number of bugs have been fixed in this release, for a full report please consult the Release note.

Leave a Reply

Training

Personal and team training will maximize them performance. 

Custom development

Need cone custom or individual features?

Fill the form and don’t forget to make the description of what you need.

Free config review

There are often optimizations that can be made to a Sphinx / Manticore setup by changing some simple directives in the configuration or making quick changes to an index definition.

Some common mistakes and issues can include:

  • doing main+delta without kill-lists, even if the delta does include updated records found in the main
  • using wildcarding with very short prefix/infix which can hammer performance in some cases
  • disabled (unintentional) seamless rotates and getting stalls on index rotations
  • adding texts as string attributes even if they are not using for any kind of operation (filtering, grouping, sorting) or mandatory to be present in results
  • using deprecated settings 

Having a quick look on the configuration can show issues or potential issues, this is why we want to offer a gift to our growing community!

When uploading your configuration file, we recommend to remove any database credentials first.

We suggest also you give as many possible details about your setup: how big is the data you have, how typical queries look and what issues you experience.

Contact us