Skip to content

Tuple waste size reported by memtx looks untrustworthy #10217

@locker

Description

@locker

Reproduced with Tarantool 3.2.0-entrypoint-113-ga0cd213bc715

Reproducer:

local json = require('json')

box.cfg{log_level = 'warn'}

box.schema.space.create('test')
box.space.test:create_index('pk')

local function print_stats(header)
    print(header, json.encode(box.space.test:stat().tuple.memtx))
end

for i = 1, 100 do
    box.space.test:insert({i, string.rep('x', 100 * 1024)})
end

print_stats('after insert')

for i = 1, 100 do
    box.space.test:delete({i})
end

print_stats('after delete')

os.exit(0)

Output:

after insert    {"waste_size":4390012,"data_size":10240700,"header_size":1000,"field_map_size":0}
after delete    {"waste_size":3981312,"data_size":0,"header_size":0,"field_map_size":0}

Note that after deleting all tuples from the space, the waste size is still reported to be around 4 MB while it should be 0. Also, 4 MB looks like a lot of waste for 10 MB data. Looks like something's broken with tuple waste accounting.

Metadata

Metadata

Assignees

Labels

3.2Target is 3.2 and all newer release/master branchesbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions