From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 49FF242F4C3 for ; Mon, 11 Nov 2019 02:40:35 +0300 (MSK) Received: by mail-pf1-f195.google.com with SMTP id n13so9403877pff.1 for ; Sun, 10 Nov 2019 15:40:35 -0800 (PST) Date: Mon, 11 Nov 2019 02:40:29 +0300 From: Konstantin Osipov Message-ID: <20191110234029.GA15733@atlas> References: <20191107010455.64457-1-korablev@tarantool.org> <20191107010455.64457-14-korablev@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191107010455.64457-14-korablev@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH 13/15] sql: introduce cache for prepared statemets List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikita Pettik Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org * Nikita Pettik [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