From: Ilya Kosarev via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: v.shpilevoy@tarantool.org, alyapunov@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH 0/4] Introduce tiny tuples with perf test Date: Tue, 19 Jan 2021 02:50:29 +0300 [thread overview] Message-ID: <cover.1611013688.git.i.kosarev@tarantool.org> (raw) 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
next reply other threads:[~2021-01-18 23:50 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-18 23:50 Ilya Kosarev via Tarantool-patches [this message] 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1611013688.git.i.kosarev@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=alyapunov@tarantool.org \ --cc=i.kosarev@tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 0/4] Introduce tiny tuples with perf test' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox