Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH 0/4] Introduce tiny tuples with perf test
@ 2021-01-18 23:50 Ilya Kosarev via Tarantool-patches
  2021-01-18 23:50 ` [Tarantool-patches] [PATCH 1/4] tuple: introduce unit perf test based on gbench Ilya Kosarev via Tarantool-patches
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ilya Kosarev via Tarantool-patches @ 2021-01-18 23:50 UTC (permalink / raw)
  To: v.shpilevoy, alyapunov; +Cc: tarantool-patches

Tuple bsize was stored in 4 byte uint32_t field. Tuple data_offset was
stored in 2 byte uint16_t field. Now the tuple contains flexible byte
array at the end, allowing to put it in the same way. On the other
hand, if it is possible, bsize and data_offset use 1 byte each. Such
tuples are called tiny tuples. They only require 6 bytes instead of 10.
Also tiny tuples use 1 byte offsets insead of 4 byte offsets. This
allows to save lots of memory for small enough tuples.

Ilya Kosarev (4):
  tuple: introduce unit perf test based on gbench
  tuple: use getters and setters
  core: introduce tiny tuples
  box: introduce 1 byte field map offsets

 .gitignore                      |   2 +
 CMakeLists.txt                  |   1 +
 perf/CMakeLists.txt             |  34 +++++
 perf/tuple.cc                   | 185 ++++++++++++++++++++++
 src/box/alter.cc                |   2 +-
 src/box/field_map.c             |  14 +-
 src/box/field_map.h             |  19 ++-
 src/box/lua/merger.c            |   2 +-
 src/box/lua/tuple.c             |   3 +-
 src/box/memtx_engine.c          |  31 ++--
 src/box/memtx_tx.c              |  22 +--
 src/box/memtx_tx.h              |   2 +-
 src/box/sql.c                   |   7 +-
 src/box/tuple.c                 |  51 ++++---
 src/box/tuple.h                 | 261 ++++++++++++++++++++++++++++----
 src/box/tuple_compare.cc        |  86 +++++++----
 src/box/tuple_extract_key.cc    |  29 ++--
 src/box/tuple_format.c          |  15 +-
 src/box/tuple_format.h          |   3 +-
 src/box/tuple_hash.cc           |  15 +-
 src/box/vy_stmt.c               |  57 ++++---
 src/box/vy_stmt.h               |  40 +++--
 test/box/errinj.result          |  18 +--
 test/box/upsert_errinj.result   |   2 +-
 test/vinyl/cache.result         |   6 +-
 test/vinyl/quota.result         |  10 +-
 test/vinyl/quota_timeout.result |   8 +-
 test/vinyl/stat.result          | 104 ++++++-------
 28 files changed, 772 insertions(+), 257 deletions(-)
 create mode 100644 perf/CMakeLists.txt
 create mode 100644 perf/tuple.cc

-- 
2.17.1


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

end of thread, other threads:[~2021-01-18 23:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-18 23:50 [Tarantool-patches] [PATCH 0/4] Introduce tiny tuples with perf test Ilya Kosarev via Tarantool-patches
2021-01-18 23:50 ` [Tarantool-patches] [PATCH 1/4] tuple: introduce unit perf test based on gbench Ilya Kosarev via Tarantool-patches
2021-01-18 23:50 ` [Tarantool-patches] [PATCH 2/4] tuple: use getters and setters Ilya Kosarev via Tarantool-patches
2021-01-18 23:50 ` [Tarantool-patches] [PATCH 3/4] core: introduce tiny tuples Ilya Kosarev via Tarantool-patches
2021-01-18 23:50 ` [Tarantool-patches] [PATCH 4/4] box: introduce 1 byte field map offsets Ilya Kosarev via Tarantool-patches

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