diff --git a/src/box/index.h b/src/box/index.h index 959ec461f215482006ebd4fa0ac4fba7f2c8868b..84e3dd9a282ce05c4436f55ccd9d12c9594e28e4 100644 --- a/src/box/index.h +++ b/src/box/index.h @@ -184,7 +184,7 @@ class Index: public Object { virtual struct tuple *replace(struct tuple *old_tuple, struct tuple *new_tuple, enum dup_replace_mode mode) = 0; - virtual size_t memsize() const = 0; + virtual size_t bsize() const = 0; /** * Create a structure to represent an iterator. Must be * initialized separately. diff --git a/src/box/lua/index.cc b/src/box/lua/index.cc index 0d2336a9d6115d330911ea765a11d2a8cd2dbd7b..ae010f76cd8b2afb7a90e06d48d0082a411675f6 100644 --- a/src/box/lua/index.cc +++ b/src/box/lua/index.cc @@ -48,10 +48,10 @@ check_index(uint32_t space_id, uint32_t index_id) } size_t -boxffi_index_memsize(uint32_t space_id, uint32_t index_id) +boxffi_index_bsize(uint32_t space_id, uint32_t index_id) { try { - return check_index(space_id, index_id)->memsize(); + return check_index(space_id, index_id)->bsize(); } catch (Exception *) { return (size_t) -1; /* handled by box.error() in Lua */ } diff --git a/src/box/lua/index.h b/src/box/lua/index.h index adb76c27f0f16ff6bebcfc3d9a2d9603a2d0e526..ec176bb9634fd665a5dfec43925f35841b215b61 100644 --- a/src/box/lua/index.h +++ b/src/box/lua/index.h @@ -56,7 +56,7 @@ boxffi_index_iterator(uint32_t space_id, uint32_t index_id, int type, const char *key); size_t -boxffi_index_memsize(uint32_t space_id, uint32_t index_id); +boxffi_index_bsize(uint32_t space_id, uint32_t index_id); struct tuple* boxffi_iterator_next(struct iterator *itr); diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua index 54b09f82a181f00b3357a2f8142fb7fbac1615bd..72d8458396acdf36d12737d57d77e5daf4c66cd2 100644 --- a/src/box/lua/schema.lua +++ b/src/box/lua/schema.lua @@ -23,7 +23,7 @@ ffi.cdef[[ size_t boxffi_index_len(uint32_t space_id, uint32_t index_id); size_t - boxffi_index_memsize(uint32_t space_id, uint32_t index_id); + boxffi_index_bsize(uint32_t space_id, uint32_t index_id); struct tuple * boxffi_index_random(uint32_t space_id, uint32_t index_id, uint32_t rnd); struct tuple * @@ -590,9 +590,9 @@ function box.schema.space.bless(space) end return tonumber(ret) end - -- index.memsize - index_mt.memsize = function(index) - local ret = builtin.boxffi_index_memsize(index.space_id, index.id) + -- index.bsize + index_mt.bsize = function(index) + local ret = builtin.boxffi_index_bsize(index.space_id, index.id) if ret == -1 then box.error() end diff --git a/src/box/memtx_bitset.cc b/src/box/memtx_bitset.cc index c5a9d89accb39bfc4e34b794f9439aec281dc8d8..64147c67ce0e235c06ffe0a0d00e0a9c48f273e9 100644 --- a/src/box/memtx_bitset.cc +++ b/src/box/memtx_bitset.cc @@ -110,7 +110,7 @@ MemtxBitset::size() const } size_t -MemtxBitset::memsize() const +MemtxBitset::bsize() const { return 0; } diff --git a/src/box/memtx_bitset.h b/src/box/memtx_bitset.h index 85dc8affdfecf43e9481c9d3e886126d3306eb70..b6b0435aa5f9b14c6f29f9d4cc903db0b554e874 100644 --- a/src/box/memtx_bitset.h +++ b/src/box/memtx_bitset.h @@ -49,7 +49,7 @@ class MemtxBitset: public Index { struct tuple *new_tuple, enum dup_replace_mode mode); - virtual size_t memsize() const; + virtual size_t bsize() const; virtual struct iterator *allocIterator() const; virtual void initIterator(struct iterator *iterator, enum iterator_type type, diff --git a/src/box/memtx_hash.cc b/src/box/memtx_hash.cc index 93b7c63c658fc03fe83bbe273ef84301855cf7fa..f0fd2cc47583c389821d69f3f839c14829ec1ec6 100644 --- a/src/box/memtx_hash.cc +++ b/src/box/memtx_hash.cc @@ -230,7 +230,7 @@ MemtxHash::size() const } size_t -MemtxHash::memsize() const +MemtxHash::bsize() const { return matras_extents_count(&hash_table->mtable) * HASH_INDEX_EXTENT_SIZE; } diff --git a/src/box/memtx_hash.h b/src/box/memtx_hash.h index 711256981258c5506112543971f3f3255582250d..448b576a524ad488ee6139037f19415240dc3cf1 100644 --- a/src/box/memtx_hash.h +++ b/src/box/memtx_hash.h @@ -50,7 +50,7 @@ class MemtxHash: public Index { virtual void initIterator(struct iterator *iterator, enum iterator_type type, const char *key, uint32_t part_count) const; - virtual size_t memsize() const; + virtual size_t bsize() const; protected: struct light_index_core *hash_table; diff --git a/src/box/memtx_rtree.cc b/src/box/memtx_rtree.cc index 6a6bc037e723004651b53ebbf08cdb45d1380891..7106aa0f7cf7dae1a83d5fe0a0125962605fb522 100644 --- a/src/box/memtx_rtree.cc +++ b/src/box/memtx_rtree.cc @@ -185,9 +185,9 @@ MemtxRTree::size() const } size_t -MemtxRTree::memsize() const +MemtxRTree::bsize() const { - return rtree_used_size(&tree); + return rtree_used_size(&tree); } struct tuple * diff --git a/src/box/memtx_rtree.h b/src/box/memtx_rtree.h index c72732a9e514ceb3dfef3f5b76401c62e3e07aa8..f4aa0ca614827efc0f2b9f4104d1a1397db1a62d 100644 --- a/src/box/memtx_rtree.h +++ b/src/box/memtx_rtree.h @@ -46,7 +46,7 @@ class MemtxRTree: public Index struct tuple *new_tuple, enum dup_replace_mode mode); - virtual size_t memsize() const; + virtual size_t bsize() const; virtual struct iterator *allocIterator() const; virtual void initIterator(struct iterator *iterator, enum iterator_type type, diff --git a/src/box/memtx_tree.cc b/src/box/memtx_tree.cc index af0a95b2970a8b9860c3427b46fa822787cf37ae..cc418738db24fd309b50576c272650b80c01a941 100644 --- a/src/box/memtx_tree.cc +++ b/src/box/memtx_tree.cc @@ -204,7 +204,7 @@ MemtxTree::size() const } size_t -MemtxTree::memsize() const +MemtxTree::bsize() const { return bps_tree_index_mem_used(&tree); } diff --git a/src/box/memtx_tree.h b/src/box/memtx_tree.h index 5102e2458c8140cbc48d5f430f04fe5bbb07cf22..00019cc7b19c5af677f60ecf969c55ef259544bd 100644 --- a/src/box/memtx_tree.h +++ b/src/box/memtx_tree.h @@ -68,7 +68,7 @@ class MemtxTree: public Index { struct tuple *new_tuple, enum dup_replace_mode mode); - virtual size_t memsize() const; + virtual size_t bsize() const; virtual struct iterator *allocIterator() const; virtual void initIterator(struct iterator *iterator, enum iterator_type type, diff --git a/src/box/sophia_index.cc b/src/box/sophia_index.cc index 5bb10b2de896b5f00a7eb39b179366742d872b27..54ed7fa21df021704f3482c3a5c9132d7bbc9b1d 100644 --- a/src/box/sophia_index.cc +++ b/src/box/sophia_index.cc @@ -194,7 +194,7 @@ SophiaIndex::size() const } size_t -SophiaIndex::memsize() const +SophiaIndex::bsize() const { void *c = sp_ctl(env); char name[128]; diff --git a/src/box/sophia_index.h b/src/box/sophia_index.h index 8a9bacc0c08bc09bc958a47302e05bf003a1c5bd..cbef29754e34758de95997a621b5218e37e96b94 100644 --- a/src/box/sophia_index.h +++ b/src/box/sophia_index.h @@ -46,7 +46,7 @@ class SophiaIndex: public Index { virtual void initIterator(struct iterator *iterator, enum iterator_type type, const char *key, uint32_t part_count) const; - virtual size_t memsize() const; + virtual size_t bsize() const; void *env; void *db; diff --git a/src/box/space.cc b/src/box/space.cc index 261c455041bc68b150fe167cd33c362366e4f71e..1a2054a09e38c830aca25bf2428dba74529d8b1a 100644 --- a/src/box/space.cc +++ b/src/box/space.cc @@ -185,7 +185,7 @@ space_stat(struct space *sp) if (index) { space_stat.index[i].id = i; space_stat.index[i].keys = index->size(); - space_stat.index[i].memsize = index->memsize(); + space_stat.index[i].bsize = index->bsize(); } else space_stat.index[i].id = -1; } diff --git a/src/box/space.h b/src/box/space.h index dd513be6259cacaaaf0d6f2b00f92a1b8be20fc4..fc326c4bd0857ccbfc7f2cb713438b767e954f87 100644 --- a/src/box/space.h +++ b/src/box/space.h @@ -271,7 +271,7 @@ space_run_triggers(struct space *space, bool yesno); struct index_stat { int32_t id; int64_t keys; - int64_t memsize; + int64_t bsize; }; struct space_stat { diff --git a/src/ffisyms.cc b/src/ffisyms.cc index b2917b1798336b13b4b11adefc4eef69d4aa14ca..5062a2af1caa17d69b5e6223aef97c9752acdcc6 100644 --- a/src/ffisyms.cc +++ b/src/ffisyms.cc @@ -34,7 +34,7 @@ void *ffi_symbols[] = { (void *) tuple_next, (void *) tuple_unref, (void *) boxffi_index_len, - (void *) boxffi_index_memsize, + (void *) boxffi_index_bsize, (void *) boxffi_index_random, (void *) boxffi_index_get, (void *) boxffi_index_iterator, diff --git a/test/big/hash.result b/test/big/hash.result index d511bdc0773ae0a746072589a1f589b2c83829a5..b5a1ecc0e52c90114b27160f00f796c752a5443d 100644 --- a/test/big/hash.result +++ b/test/big/hash.result @@ -13,6 +13,9 @@ hash = box.schema.space.create('tweedledum') tmp = hash:create_index('primary', { type = 'hash', parts = {1, 'num'}, unique = true }) --- ... +bsize = tmp:bsize() +--- +... -- Insert valid fields hash:insert{0, 'value1 v1.0', 'value2 v1.0'} --- @@ -30,6 +33,10 @@ hash:insert{3, 'value1 v1.0', 'value2 v1.0'} --- - [3, 'value1 v1.0', 'value2 v1.0'] ... +tmp:bsize() > bsize +--- +- true +... -- Insert invalid fields hash:insert{'invalid key', 'value1 v1.0', 'value2 v1.0'} --- diff --git a/test/big/hash.test.lua b/test/big/hash.test.lua index 3df6f0be422b2f2cbf4404e869604b86d41a33b7..bf505b3c3fd5cd75f1485e16bf0b89e91b9e58a7 100644 --- a/test/big/hash.test.lua +++ b/test/big/hash.test.lua @@ -9,12 +9,16 @@ dofile('utils.lua') hash = box.schema.space.create('tweedledum') tmp = hash:create_index('primary', { type = 'hash', parts = {1, 'num'}, unique = true }) +bsize = tmp:bsize() + -- Insert valid fields hash:insert{0, 'value1 v1.0', 'value2 v1.0'} hash:insert{1, 'value1 v1.0', 'value2 v1.0'} hash:insert{2, 'value1 v1.0', 'value2 v1.0'} hash:insert{3, 'value1 v1.0', 'value2 v1.0'} +tmp:bsize() > bsize + -- Insert invalid fields hash:insert{'invalid key', 'value1 v1.0', 'value2 v1.0'} diff --git a/test/big/tree_pk.result b/test/big/tree_pk.result index d75f06d5a05073dceee7e4759d0e868991538bef..a8a3f3cf35623cbfd5286a127fb3db10c48ee96f 100644 --- a/test/big/tree_pk.result +++ b/test/big/tree_pk.result @@ -7,6 +7,9 @@ s0 = box.schema.space.create('tweedledum') i0 = s0:create_index('primary', { type = 'tree', parts = {1, 'num'}, unique = true }) --- ... +bsize = i0:bsize() +--- +... -- integer keys s0:insert{1, 'tuple'} --- @@ -24,6 +27,10 @@ box.snapshot() --- - ok ... +i0:bsize() > bsize +--- +- true +... s0:insert{3, 'tuple 3'} --- - [3, 'tuple 3'] diff --git a/test/big/tree_pk.test.lua b/test/big/tree_pk.test.lua index fc48c6f7e71024a1e3799c604037f6b1210d46e1..6a696143ff45b3d68c8bb8eb11ac8cb9f88f7847 100644 --- a/test/big/tree_pk.test.lua +++ b/test/big/tree_pk.test.lua @@ -3,12 +3,16 @@ dofile('utils.lua') s0 = box.schema.space.create('tweedledum') i0 = s0:create_index('primary', { type = 'tree', parts = {1, 'num'}, unique = true }) +bsize = i0:bsize() + -- integer keys s0:insert{1, 'tuple'} box.snapshot() s0:insert{2, 'tuple 2'} box.snapshot() +i0:bsize() > bsize + s0:insert{3, 'tuple 3'} s0.index['primary']:get{1} s0.index['primary']:get{2}