Tarantool development patches archive
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Incorporate tuple comparison hints into Vinyl
@ 2019-04-06 20:01 Vladimir Davydov
  2019-04-06 20:01 ` [PATCH v2 1/7] Move hint_t definition to tuple_compare.h Vladimir Davydov
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Vladimir Davydov @ 2019-04-06 20:01 UTC (permalink / raw)
  To: tarantool-patches

The goal of this patch set is to build comparison hints into every
subsystem of the Vinyl engine. This is a prerequisite for multikey index
support as we are going to reuse comparison hints to store offsets of
indexed array entries. For conventional indexes, this should speed up
all tuple comparisons, similarly to how it was done in case of the memtx
tree index.

https://github.com/tarantool/tarantool/commits/dv/vy-hints

Changes in v2:
 - Rather than passing hint_t as a separate argument, which is error
   prone and bulky, introduce vy_entry struct storing a statement with
   its hint and pass it around by value, as suggested by Kostja.
 - Squash all patches adding comparison hints in one since with the new
   approach patching subsystems one by one would be too tedious.
 - Rename vy_cache_entry to vy_cache_node so as not to confuse it with
   vy_entry.
 - Factor out a few preparatory patches doing renames and moving pieces
   of code around.
 - Move hint_t from key_def.h to tuple_compare.h to reduce dependencies,
   as suggested by Kostja.
 - Drop (temporarily) patch killing un-hinted versions of comparators,
   because it isn't directly connected with this task and hence better
   be submitted separately.

v1: https://www.freelists.org/post/tarantool-patches/PATCH-0013-Incorporate-tuple-comparison-hints-into-Vinyl

Vladimir Davydov (7):
  Move hint_t definition to tuple_compare.h
  vinyl: rename vy_cache_entry to vy_cache_node
  vinyl: rename tree_mem_key to vy_mem_tree_key
  vinyl: zap vy_mem_iterator_curr_stmt helper
  vinyl: add wrapper around vy_tx_set
  vinyl: prepare for storing hints in vinyl data structures
  vinyl: incorporate tuple comparison hints into vinyl data structures

 src/box/key_def.h               |  39 ++--
 src/box/tuple_compare.cc        |  11 +
 src/box/tuple_compare.h         |  23 ++
 src/box/vinyl.c                 | 317 +++++++++++++++----------
 src/box/vy_cache.c              | 503 ++++++++++++++++++++--------------------
 src/box/vy_cache.h              |  58 ++---
 src/box/vy_entry.h              |  79 +++++++
 src/box/vy_history.c            |  42 ++--
 src/box/vy_history.h            |  25 +-
 src/box/vy_lsm.c                | 239 ++++++++++---------
 src/box/vy_lsm.h                |  17 +-
 src/box/vy_mem.c                | 221 +++++++++---------
 src/box/vy_mem.h                |  60 +++--
 src/box/vy_point_lookup.c       |  44 ++--
 src/box/vy_point_lookup.h       |   7 +-
 src/box/vy_range.c              |  75 +++---
 src/box/vy_range.h              |  14 +-
 src/box/vy_read_iterator.c      | 240 +++++++++----------
 src/box/vy_read_iterator.h      |  17 +-
 src/box/vy_read_set.c           |  32 +--
 src/box/vy_read_set.h           |  13 +-
 src/box/vy_run.c                | 396 ++++++++++++++++---------------
 src/box/vy_run.h                |  37 +--
 src/box/vy_scheduler.c          |  17 +-
 src/box/vy_stmt.h               | 113 +++++++++
 src/box/vy_stmt_stream.h        |   4 +-
 src/box/vy_tx.c                 | 255 ++++++++++----------
 src/box/vy_tx.h                 |  39 ++--
 src/box/vy_upsert.h             |  16 +-
 src/box/vy_write_iterator.c     | 280 +++++++++++-----------
 test/unit/vy_cache.c            |  19 +-
 test/unit/vy_iterators_helper.c |  93 ++++----
 test/unit/vy_iterators_helper.h |  14 +-
 test/unit/vy_mem.c              |  76 +++---
 test/unit/vy_point_lookup.c     |  33 +--
 test/unit/vy_write_iterator.c   |  15 +-
 test/vinyl/cache.result         |   6 +-
 test/vinyl/stat.result          |  26 +--
 38 files changed, 1950 insertions(+), 1565 deletions(-)
 create mode 100644 src/box/vy_entry.h

-- 
2.11.0

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-04-08 12:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-06 20:01 [PATCH v2 0/7] Incorporate tuple comparison hints into Vinyl Vladimir Davydov
2019-04-06 20:01 ` [PATCH v2 1/7] Move hint_t definition to tuple_compare.h Vladimir Davydov
2019-04-08 12:08   ` [tarantool-patches] " Konstantin Osipov
2019-04-06 20:01 ` [PATCH v2 2/7] vinyl: rename vy_cache_entry to vy_cache_node Vladimir Davydov
2019-04-08 12:09   ` [tarantool-patches] " Konstantin Osipov
2019-04-06 20:01 ` [PATCH v2 3/7] vinyl: rename tree_mem_key to vy_mem_tree_key Vladimir Davydov
2019-04-08 12:09   ` [tarantool-patches] " Konstantin Osipov
2019-04-06 20:01 ` [PATCH v2 4/7] vinyl: zap vy_mem_iterator_curr_stmt helper Vladimir Davydov
2019-04-08 12:09   ` [tarantool-patches] " Konstantin Osipov
2019-04-06 20:01 ` [PATCH v2 5/7] vinyl: add wrapper around vy_tx_set Vladimir Davydov
2019-04-06 20:01 ` [PATCH v2 6/7] vinyl: prepare for storing hints in vinyl data structures Vladimir Davydov
2019-04-06 20:01 ` [PATCH v2 7/7] vinyl: incorporate tuple comparison hints into " Vladimir Davydov
2019-04-07 12:33 ` [PATCH v2 0/7] Incorporate tuple comparison hints into Vinyl Vladimir Davydov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox