Valentin Kulichenko created IGNITE-2389:
-------------------------------------------

             Summary: Need to add ability to swap the queue if it's too long
                 Key: IGNITE-2389
                 URL: https://issues.apache.org/jira/browse/IGNITE-2389
             Project: Ignite
          Issue Type: Improvement
          Components: data structures
            Reporter: Valentin Kulichenko
             Fix For: 1.6


In some cases there can be a requirement to start swapping new queue elements 
to avoid out of memory errors. For example, if the consumer temporarily stopped 
for some reason, but the producer still adds elements.

We can do this based on cache swap space and evictions. I think we should:
# Add max allowed in-memory elements property to {{CollectionConfiguration}}. 
We can also support limit by memory size.
# Implement special eviction policy that will evict new queue elements if 
limits are reached.
# Automatically unswap latest elements when consumer resumes polling (can be 
achieved by a background process).

In case of {{IgniteSet}}, limits should be also honored, but here we don't have 
ordering. So I think we can use our standard LRU, but make sure that only 
elements are swapped. Header and other meta objects should be always in memory.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to