You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2011/09/09 15:54:08 UTC
[jira] [Created] (CASSANDRA-3168) Arena allocation causes excessive
flushing on small heaps
Arena allocation causes excessive flushing on small heaps
---------------------------------------------------------
Key: CASSANDRA-3168
URL: https://issues.apache.org/jira/browse/CASSANDRA-3168
Project: Cassandra
Issue Type: Bug
Affects Versions: 1.0
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Fix For: 1.0
adding allocator.size() to Memtable.getLiveSize has two problems:
1) it double-counts allocated parts of regions
2) it makes the size of an empty memtable the size of a single region
(2) is a particular problem because flushing a nearly-empty memtable will not actually free up much memory -- we just trade one almost-empty region, for another. In testing, I even saw this happening to the low-traffic system tables like LocationInfo.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3168) Arena allocation causes
excessive flushing on small heaps
Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-3168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13101451#comment-13101451 ]
Stu Hood commented on CASSANDRA-3168:
-------------------------------------
+1.
> Arena allocation causes excessive flushing on small heaps
> ---------------------------------------------------------
>
> Key: CASSANDRA-3168
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3168
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.0.0
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Fix For: 1.0.0
>
> Attachments: 0002-3168.txt, 3168.txt
>
>
> adding allocator.size() to Memtable.getLiveSize has two problems:
> 1) it double-counts allocated parts of regions
> 2) it makes the size of an empty memtable the size of a single region
> (2) is a particular problem because flushing a nearly-empty memtable will not actually free up much memory -- we just trade one almost-empty region, for another. In testing, I even saw this happening to the low-traffic system tables like LocationInfo.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3168) Arena allocation causes excessive
flushing on small heaps
Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-3168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stu Hood updated CASSANDRA-3168:
--------------------------------
Attachment: 0002-3168.txt
Using both currentThroughput and allocator.size is definitely wrong... don't know what I was thinking there.
Since this was the only code using SlabAllocator.size(), here's a patch to remove it.
> Arena allocation causes excessive flushing on small heaps
> ---------------------------------------------------------
>
> Key: CASSANDRA-3168
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3168
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.0.0
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Fix For: 1.0.0
>
> Attachments: 0002-3168.txt, 3168.txt
>
>
> adding allocator.size() to Memtable.getLiveSize has two problems:
> 1) it double-counts allocated parts of regions
> 2) it makes the size of an empty memtable the size of a single region
> (2) is a particular problem because flushing a nearly-empty memtable will not actually free up much memory -- we just trade one almost-empty region, for another. In testing, I even saw this happening to the low-traffic system tables like LocationInfo.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3168) Arena allocation causes excessive
flushing on small heaps
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-3168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-3168:
--------------------------------------
Attachment: 3168.txt
patch to remove allocator.size() from getLiveSize calculation. also adds note about arena allocation to NEWS.
> Arena allocation causes excessive flushing on small heaps
> ---------------------------------------------------------
>
> Key: CASSANDRA-3168
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3168
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.0
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Fix For: 1.0
>
> Attachments: 3168.txt
>
>
> adding allocator.size() to Memtable.getLiveSize has two problems:
> 1) it double-counts allocated parts of regions
> 2) it makes the size of an empty memtable the size of a single region
> (2) is a particular problem because flushing a nearly-empty memtable will not actually free up much memory -- we just trade one almost-empty region, for another. In testing, I even saw this happening to the low-traffic system tables like LocationInfo.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira