Hi all, Current set implementation has significant flaw: all set data are duplicated in onheap maps on _every_ node in order to make iterator() and size(). For me it looks like simple yet ineffective implementation. Currently, these maps are damaged by checkpointing/recovery, and we could patch them somehow. Another future change to Ignite caches can damage them again. This looks fragile when datastructure is not entirely backed by caches. Pavel's proposal seems to be a reliable solution for non-collocated sets.
9 февр. 2018 г. 22:46 пользователь "Valentin Kulichenko" < valentin.kuliche...@gmail.com> написал: Pavel, I'm a bit confused. In my understanding, issue exists because we have local in-memory maps which are used as the main source of truth about which structures currently exist. During restart, we lose all this data even if data structures cache(s) are persisted. Once we fix this, issue goes away, regardless of weather we store data structure per cache or everything in single cache. Am I missing something? I also agree with Dmitry. While cache per set approach can make sense for non-collocated sets, for collocated ones it definitely doesn't. So I would fix the original issue first, and then change the architecture if it's really needed. -Val