Got it. I thought that index building and index rebuilding are essentially the 
same,
but now I see that they are different: index rebuilding cares about all indexes 
at once while index building cares about particular ones.

Kirill's approach sounds good.

Stan

> On 20 Jul 2020, at 14:54, Alexey Goncharuk <alexey.goncha...@gmail.com> wrote:
> 
> Stan,
> 
> Currently we never build indexes one-by-one - we always use a cache data
> row visitor which either updates all indexes (see IndexRebuildFullClosure)
> or updates a set of all indexes that need to catch up (see
> IndexRebuildPartialClosure). GIven that, I do not see any need for
> per-index rebuild status as this status will be updated for all outdated
> indexes simultaneously.
> 
> Kirill's approach for the total number of processed keys per cache seems
> reasonable to me.
> 
> --AG
> 
> пт, 3 июл. 2020 г. в 10:12, ткаленко кирилл <tkalkir...@yandex.ru>:
> 
>> Hi, Stan!
>> 
>> Perhaps it is worth clarifying what exactly I wanted to say.
>> Now we have 2 processes: building and rebuilding indexes.
>> 
>> At moment, we have some metrics for rebuilding indexes:
>> "IsIndexRebuildInProgress", "IndexBuildCountPartitionsLeft".
>> 
>> I suggest adding another metric "Indexrebuildkeyprocessed", which will
>> allow you to determine how many records are left to rebuild for cache.
>> 
>> I think your comments are more about building an index that may need more
>> metrics, but I think you should do it in a separate ticket.
>> 
>> 03.07.2020, 03:09, "Stanislav Lukyanov" <stanlukya...@gmail.com>:
>>> If multiple indexes are to be built "number of indexed keys" metric may
>> be misleading.
>>> 
>>> As a cluster admin, I'd like to know:
>>> - Are all indexes ready on a node?
>>> - How many indexes are to be built?
>>> - How much resources are used by the index building (how many threads
>> are used)?
>>> - Which index(es?) is being built right now?
>>> - How much time until the current (single) index building finishes? Here
>> "time" can be a lot of things: partitions, entries, percent of the cache,
>> minutes and hours
>>> - How much time until all indexes are built?
>>> - How much does it take to build each of my indexes / a single index of
>> my cache on average?
>>> 
>>> I think we need a set of metrics and/or log messages to solve all of
>> these questions.
>>> I imaging something like:
>>> - numberOfIndexesToBuild
>>> - a standard set of metrics on the index building thread pool (do we
>> already have it?)
>>> - currentlyBuiltIndexName (assuming we only build one at a time which is
>> probably not true)
>>> - for the "time" metrics I think percentage might be the best as it's
>> the easiest to understand; we may add multiple metrics though.
>>> - For "time per each index" I'd add detailed log messages stating how
>> long did it take to build a particular index
>>> 
>>> Thanks,
>>> Stan
>>> 
>>>> On 26 Jun 2020, at 12:49, ткаленко кирилл <tkalkir...@yandex.ru>
>> wrote:
>>>> 
>>>> Hi, Igniters.
>>>> 
>>>> I would like to know if it is possible to estimate how much the index
>> rebuild will take?
>>>> 
>>>> At the moment, I have found the following metrics [1] and [2] and
>> since the rebuild is based on caches, I think it would be useful to know
>> how many records are processed in indexing. This way we can estimate how
>> long we have to wait for the index to be rebuilt by subtracting [3] and how
>> many records are indexed.
>>>> 
>>>> I think we should add this metric [4].
>>>> 
>>>> Comments, suggestions?
>>>> 
>>>> [1] - https://issues.apache.org/jira/browse/IGNITE-12184
>>>> [2] -
>> org.apache.ignite.internal.processors.cache.CacheGroupMetricsImpl#idxBuildCntPartitionsLeft
>>>> [3] - org.apache.ignite.cache.CacheMetrics#getCacheSize
>>>> [4] - org.apache.ignite.cache.CacheMetrics#getNumberIndexedKeys
>> 

Reply via email to