Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7501

Improve underlying iterators closing process for cache iterators.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3
    • 2.7
    • cache, mvcc
    • None

    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

          Activity

            People

              rkondakov Roman Kondakov
              rkondakov Roman Kondakov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: