[Tarantool-patches] [PATCH] vinyl: account statement statistics during .index rebuild

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Fri Nov 27 00:30:05 MSK 2020


>>>  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?


More information about the Tarantool-patches mailing list