From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id A201445C304 for ; Fri, 27 Nov 2020 00:30:07 +0300 (MSK) References: <073615333a88cf9ccf217ad90b121cd5074eddd9.1606251521.git.korablev@tarantool.org> <7b513ae7-2531-118d-7472-7e92e5cad6fc@tarantool.org> <20201126211929.GA30305@tarantool.org> From: Vladislav Shpilevoy Message-ID: Date: Thu, 26 Nov 2020 22:30:05 +0100 MIME-Version: 1.0 In-Reply-To: <20201126211929.GA30305@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH] vinyl: account statement statistics during .index rebuild List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikita Pettik Cc: tarantool-patches@dev.tarantool.org >>> src/box/vy_run.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/src/box/vy_run.c b/src/box/vy_run.c >>> index b9822dc3e..820a6ce3f 100644 >>> --- a/src/box/vy_run.c >>> +++ b/src/box/vy_run.c >>> @@ -2452,6 +2452,8 @@ vy_run_rebuild_index(struct vy_run *run, const char *dir, >>> goto close_err; >>> } >>> } >>> + vy_stmt_stat_acct(&run->info.stmt_stat, >>> + vy_stmt_type(tuple)); >> >> Why is it needed? The run is not created from the scratch. Only >> its index is rebuilt, which is not related to the statistics, >> AFAIU. The statements in the run are not changed here. It means >> it was filled some time ago, and everything should have already >> been accounted via vy_run_writer_write_to_page(). > > Possibly it doesn't affect anything, but just noted that in case > of re-creating .index files during force-recovery, they contained > zeroed statistics (in contrast to ordinary .index files). It may > turn out to be helpful e.g. during digging into vinyl problems. No, my question was not about it. I don't understand, why info.stmt_stat is not already filled? It seems it is based entirely on run file content, not on its index. It means, you should have it filled when run is created/recovered. When is the stat filled when run is recovered normally? Why does not vy_run_recover() fill the statistics instead?