[Tarantool-patches] [PATCH 0/2] reduce performance degradation introduced by JSON path indices

Serge Petrenko sergepetrenko at tarantool.org
Sat Nov 14 20:28:21 MSK 2020

The patchset fixes two degradations found by measuring snapshot recovery time
for a 1.5G snapshot containing 30M tuples in a memtx space with a simple primary
key and one secondary key over 4 integer and one string field.

The first degradation manifests itself during snapshot recovery phase (the one
with "3.5M rows processed" messages) and is connected to `memtx_tuple_new`
slowdown due to unoptimised `tuple_field_map_create`.

First patch deals with this degradation and manages to restore almost all
performance lost since 1.10. (The patched version is only 11% slower than 1.10,
while the current master is 39% slower on this phase).

The second degradation appears during next snapshot recovery phase, secondary
index building. Here the degradation is rooted in slow tuple field access via

The second patch deals with this issue and manages to restore part of the lost
performance. (The patched version is 14% slower than 1.10 while the current
master is 27% slower).

Serge Petrenko (2):
  box: speed up tuple_field_map_create
  box: use tuple_field_raw_by_part where possible

 src/box/tuple_compare.cc     | 37 ++++-----------
 src/box/tuple_extract_key.cc | 10 +---
 src/box/tuple_format.c       | 91 ++++++++++++++++++++++++++++++++++++
 src/box/tuple_hash.cc        | 35 ++++----------
 4 files changed, 111 insertions(+), 62 deletions(-)

2.24.3 (Apple Git-128)

More information about the Tarantool-patches mailing list