Description
Current implementation stores deferred entry removals in rmvQueue for consistency guaranties.
This can lead to significant heap over-usage(I observed several Gbs) in case of many caches with removals, because currently queue is cleared lazily after reaching max capacity(200_000 by default).
This can be mitigated by using lower IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE, but can lead to consistency issues in case of frequent cache updates.
Possible optimizations:
- Use single fixed size queue per all caches to overcome limitations of IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE workaround.
- Do queue cleaning in background
- Move queue to an off-heap.