[Tarantool-patches] [PATCH 0/4] Introduce tiny tuples with perf test
Ilya Kosarev
i.kosarev at tarantool.org
Tue Jan 19 02:50:29 MSK 2021
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
More information about the Tarantool-patches
mailing list