Tarantool development patches archive
 help / color / mirror / Atom feed
* [PATCH 0/5] JSON update preparation
@ 2019-07-13 22:11 Vladislav Shpilevoy
  2019-07-13 22:11 ` [PATCH 1/5] tuple: remove alloc and alloc_ctx args from update() Vladislav Shpilevoy
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Vladislav Shpilevoy @ 2019-07-13 22:11 UTC (permalink / raw)
  To: tarantool-patches; +Cc: vdavydov.dev

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)

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

end of thread, other threads:[~2019-08-27 22:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-13 22:11 [PATCH 0/5] JSON update preparation Vladislav Shpilevoy
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

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