[ 
https://issues.apache.org/jira/browse/CASSANDRA-5661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13714921#comment-13714921
 ] 

Ben Manes commented on CASSANDRA-5661:
--------------------------------------

Since the EBS version is still in progress, the code is shared below. It uses a 
treiber stack with backoff to an elimination array, mixing in optimizations 
borrowed from j.u.c.Exchanger. It performs superior to the queues by not to 
honor FIFO ordering, making cancellation easy to achieve.

While all tests pass, I think that the time-to-idle policy is corrupted as it 
assumed fifo ordering. I can make it tolerant of running out-of-order. I may 
try writing an elimination queue (LTQ uses a dual queue design).

https://github.com/ben-manes/multiway-pool/tree/elimination
                
> Discard pooled readers for cold data
> ------------------------------------
>
>                 Key: CASSANDRA-5661
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5661
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.1
>            Reporter: Jonathan Ellis
>            Assignee: Pavel Yaskevich
>             Fix For: 2.0.1
>
>         Attachments: CASSANDRA-5661-global-multiway-cache.patch, 
> CASSANDRA-5661.patch, DominatorTree.png, Histogram.png
>
>
> Reader pooling was introduced in CASSANDRA-4942 but pooled 
> RandomAccessReaders are never cleaned up until the SSTableReader is closed.  
> So memory use is "the worst case simultaneous RAR we had open for this file, 
> forever."
> We should introduce a global limit on how much memory to use for RAR, and 
> evict old ones.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to