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

Pavel Yaskevich commented on CASSANDRA-5661:
--------------------------------------------

bq. worst case pool size proportional to sstables * concurrent readers means 
that memory usage increases linearly with disk size; increasing sstable size 
decreases it linearly, so we expect 100MB sstables [which is on the high side 
of what is reasonable IMO] to get us to ~4TB of space managed which is good but 
not "problem solved" territory.

Let's clarify that it's a really-really worse case which means that your reads 
touch whole dataset all the time and it's a good show case for side affect of 
having fixed size files of small size so even if you don't do caching it would 
create allocation rate proportional to the dataset size as well as increased 
syscall rate to open/seek/close those files so it's frequent GC/FullGC vs OOM 
in here (when run without memory cap).

bq. The most common operations in an object pool are the borrow/return. Ben's 
multiway pool optimizes for this, with particular attention to possible 
contention from multiple reader threads.

If I understand correctly by borrow you mean allocate object in the pool and 
give it way to the caller, this is not how I would like it to behave instead we 
can allocate object without assigning to the queue when it runs short (as all 
of the objects are short lived) and then decide if we want it back when caller 
it done with it, disadvantages of allocating to the pool I have already 
described in my previous comments.

Bottom line for me being, I'm tired of arguing about this so I will let mighty 
people to decide what they see fit as in all other cases (e.g. fadvic'ing whole 
file on reads, preheating page cache etc.). 


                
> 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: 1.2.7
>
>         Attachments: 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