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 >