[Tarantool-patches] [PATCH 13/15] sql: introduce cache for prepared statemets

Konstantin Osipov kostja.osipov at gmail.com
Mon Nov 11 02:40:29 MSK 2019


* Nikita Pettik <korablev at tarantool.org> [19/11/07 04:33]:
> This patch introduces cache (as data structure) to handle prepared
> statements and a set of interface functions (insert, delete, find,
> erase) to operate on it. Cache under the hood is hash table with integer
> ids as keys and prepared statements (struct sql_stmt which is an alias
> for struct Vdbe) as values. Size of cache is regulated by quota via
> box.cfg{sql_cache_size} parameter. Cache is supposed to be attached to
> session, which means it is destroyed when session is ended. To erase
> session manually, there's special handle - session's method
> sql_cache_erase(). Default cache size is assumed to be 5 Mb (like in
> PosgreSQL).

I admire the depth of architecture vision here - let's just do what postgresql does!!

If tarantool connections are going to be as slow as postgresql
connections (I can imagine iterating over vdbe objects in a
single-threaded environment to free them up on disconnect,
especially in a thundering herd way when a bunch of connections is
established or dropped), why use tarantool at all?

The whole idea of using string identifiers was that the cache is
global and there is zero overhead on connect or disconnect.

-- 
Konstantin Osipov, Moscow, Russia


More information about the Tarantool-patches mailing list