Description
When we call javax.cache.Cache#iterator() we get java.util.Iterator which doesn't have a close() method. But underlying GridCloseableIterator does have this method and it should be called when all the work with the current iterator is done. Currently calling close() for the underlying closeable iterator is delegated to WeakQueryCloseableIterator. So, close() method is usually called in GridCacheGateway#onEnter or on a garbage collection phase, which is not acceptable in some situations. For example if MVCC is enabled, this late iterator closing could dramatically increase the active queries tracking list size which could lead to the performance and garbage collection ("vacuum") issues.
Attachments
Issue Links
- relates to
-
IGNITE-6739 Add tests verifying queries and tx functionality when mvcc is enabled
- Closed