From memtx_tuple_new() we call smalloc(). In case it is calling
mempool_alloc(), we are passing the pool from memtx->alloc, chosen
depending on it's size. Later this tuple may be deleted. Then smfree()
is called, which uses mempool_find() to acquire the pool we want to
free.
In case we are using some other specific pool, current mempool_find()
won't be able to find it. This means we need to process this case
explicitly and it seems to add noticeable unjustified complexity to the
code.

 
Четверг, 6 февраля 2020, 17:29 +03:00 от Konstantin Osipov <kostja.osipov@gmail.com>:
 
* Ilya Kosarev <i.kosarev@tarantool.org> [20/02/06 13:51]:
>
> Well, the problem here is that garbage collection won't work properly
> in this case.

I don't understand what GC has to do with it. Please clarify.

> I guess it can be adjusted, however, there will be some
> kind of crutches and it doesn't seem to be a good idea. Just switching
> quota on and off seems to be more suitable and convenient for
> truncations and deletions.
>  

--
Konstantin Osipov, Moscow, Russia
 
 
--
Ilya Kosarev