From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: tarantool-patches@freelists.org Cc: vdavydov.dev@gmail.com Subject: [PATCH 0/5] JSON update preparation Date: Sun, 14 Jul 2019 00:11:03 +0200 [thread overview] Message-ID: <cover.1563054879.git.v.shpilevoy@tarantool.org> (raw) The patchset is mainly about rope and its usage. Rope is a data structure allowing to modify an array with memory overhead not depending on the array size. Only on the number of modifications. It is used when there is a long array of something, and a one wants to insert new elements, delete existing ones, change their values, but do not rebuild the whole array each time. Rope is going to be one of the core data structures of the incoming JSON path updates, and this patchset makes it faster and lighter. Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-1261-update-json-prepare Issue: https://github.com/tarantool/tarantool/issues/1261 Vladislav Shpilevoy (5): tuple: remove alloc and alloc_ctx args from update() rope: make rope library macro template tuple: relax struct tuple_update dependency on rope int96: add a missing header tuple: implement update by field name debian/copyright | 2 +- src/box/errcode.h | 4 +- src/box/lua/tuple.c | 10 +- src/box/memtx_space.c | 27 +- src/box/space.c | 26 +- src/box/sql/insert.c | 3 +- src/box/sql/resolve.c | 4 +- src/box/sql/update.c | 2 +- src/box/tuple.c | 18 +- src/box/tuple_update.c | 292 +++++++++-------- src/box/tuple_update.h | 25 +- src/box/vinyl.c | 19 +- src/box/vy_upsert.c | 31 +- src/lib/bit/int96.h | 1 + src/lib/salad/rope.c | 479 +++++----------------------- src/lib/salad/rope.h | 617 +++++++++++++++++++++++++++++++----- test/box/misc.result | 3 +- test/box/update.result | 2 +- test/engine/update.result | 67 ++++ test/engine/update.test.lua | 28 ++ test/engine/upsert.result | 2 +- test/unit/column_mask.c | 33 +- test/unit/rope.c | 1 - test/unit/rope_avl.c | 1 - test/unit/rope_basic.c | 1 - test/unit/rope_common.h | 41 ++- test/unit/rope_stress.c | 5 +- 27 files changed, 993 insertions(+), 751 deletions(-) -- 2.20.1 (Apple Git-117)
next reply other threads:[~2019-07-13 22:11 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-13 22:11 Vladislav Shpilevoy [this message] 2019-07-13 22:11 ` [PATCH 1/5] tuple: remove alloc and alloc_ctx args from update() Vladislav Shpilevoy 2019-07-13 22:11 ` [PATCH 2/5] rope: make rope library macro template Vladislav Shpilevoy 2019-07-13 22:11 ` [PATCH 3/5] tuple: relax struct tuple_update dependency on rope Vladislav Shpilevoy 2019-07-13 22:11 ` [PATCH 4/5] int96: add a missing header Vladislav Shpilevoy 2019-07-13 22:11 ` [PATCH 5/5] tuple: implement update by field name Vladislav Shpilevoy 2019-07-31 12:15 ` [PATCH 0/5] JSON update preparation Vladimir Davydov 2019-07-31 20:36 ` [tarantool-patches] " Vladislav Shpilevoy 2019-08-22 21:18 ` Vladislav Shpilevoy 2019-08-27 22:08 ` [tarantool-patches] " Kirill Yukhin
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.1563054879.git.v.shpilevoy@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=vdavydov.dev@gmail.com \ --subject='Re: [PATCH 0/5] JSON update preparation' \ /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