cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Morton <>
Subject Re: memory consuption
Date Sun, 20 Feb 2011 19:11:40 GMT
Thanks Peter for the extra detail.

I thought there may have been something more mysterious going on. But it sounds like it was
just the semantics of the term "use".


On 18/02/2011, at 9:25 PM, Peter Schuller <> wrote:

>> main argument for using mmap() instead of standard I/O is the fact
>> that reading entails just touching memory - in the case of the memory
>> being resident, you just read it - you don't even take a page fault
>> (so no overhead in entering the kernel and doing a semi-context
>> switch).
> Oh and in the case of Java/Cassandra, as Jonathan clued me in on
> earlier, there is also the issue that byte[] arrays are mandated to be
> zeroed when allocated which causes overhead typically because there
> has to be a loop[1] somewhere writing a bunch of zeroes in, that
> you're then just going to replace immediately. Mapping a file has no
> such implications as long as you read directly from the underlying
> direct ByteBuffer.
> [1] Not *necessarily*; a JVM could theoretically do byte[] allocations
> in such a way that it already knows the contents is zeroed, but it
> would be highly dependent on the GC/memory management technique used
> by the JVM whether this is practical. (It just occurred to me that
> Azul should get this for 'free' in their GC. Wonder if that's true.)
> -- 
> / Peter Schuller

View raw message