[Tarantool-patches] [PATCH 0/3] Safe allocation on truncation and deletion

Ilya Kosarev i.kosarev at tarantool.org
Fri Dec 13 10:05:08 MSK 2019


space:truncate() and space:delete() could fail on memory allocations
when reaching memtx_memory limit. As far as it is quite an ill
behaviour, it is fixed in this patchset through denial of extra
memory reservation and unconstrained allocation of service tuples
in BOX_TRUNCATE_ID space.

Branch: https://github.com/tarantool/tarantool/tree/i.kosarev/gh-3807-safe-alloc-on-truncation
Issue: https://github.com/tarantool/tarantool/issues/3807

Ilya Kosarev (3):
  b-tree: return NULL on matras_alloc fail
  memtx: don't reserve extra memory if not needed
  tuple: use calloc for service truncation tuples

 src/box/memtx_engine.c   | 50 ++++++++++++++++++++++++++--------------
 src/box/memtx_engine.h   |  2 +-
 src/box/memtx_space.c    | 34 ++++++++++++++++++++-------
 src/box/tuple.c          | 16 +++++++++----
 src/box/tuple.h          |  2 +-
 src/box/tuple_format.c   |  1 +
 src/box/tuple_format.h   | 10 +++++++-
 src/box/vy_stmt.c        |  3 ++-
 src/lib/salad/bps_tree.h |  2 ++
 9 files changed, 87 insertions(+), 33 deletions(-)

-- 
2.17.1



More information about the Tarantool-patches mailing list