cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-1214) Force linux to not swap the JVM
Date Wed, 09 Feb 2011 14:21:03 GMT

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

Jonathan Ellis commented on CASSANDRA-1214:
-------------------------------------------

Because we _don't_ want mmap'd data to be locked into memory -- typical data sizes far exceed
available RAM.  The OS deals well with keeping hot mmap'd data paged in, so we want to let
it do its job there.  We just don't want it to be confused by the JVM's GC behavior into paging
part of the JVM itself out.

> Force linux to not swap the JVM
> -------------------------------
>
>                 Key: CASSANDRA-1214
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1214
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: James Golick
>            Assignee: Jonathan Ellis
>             Fix For: 0.6.5, 0.7 beta 2
>
>         Attachments: 1214-v3.txt, 1214-v4.txt, Read Throughput with mmap.jpg, mlockall-jna.patch.txt,
trunk-1214.txt
>
>
> The way mmap()'d IO is handled in cassandra is dangerous. It allocates potentially massive
buffers without any care for bounding the total size of the program's buffers. As the node's
dataset grows, this *will* lead to swapping and instability.
> This is a dangerous and wrong default for a couple of reasons.
> 1) People are likely to test cassandra with the default settings. This issue is insidious
because it only appears when you have sufficient data in a certain node, there is absolutely
no way to control it, and it doesn't at all respect the memory limits that you give to the
JVM.
> That can all be ascertained by reading the code, and people should certainly do their
homework, but nevertheless, cassandra should ship with sane defaults that don't break down
when you cross some magic unknown threshold.
> 2) It's deceptive. Unless you are extremely careful with capacity planning, you will
get bit by this. Most people won't really be able to use this in production, so why get them
excited about performance that they can't actually have?

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message