incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aaron morton <aa...@thelastpickle.com>
Subject Re: Help on MMap of SSTables
Date Fri, 07 Dec 2012 03:36:43 GMT
> So for memory mapped files, compaction can do a madvise SEQUENTIAL instead of current
DONTNEED flag after detecting appropriate OS versions. Will this help?

AFAIK Compaction does use memory mapped file access. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Developer
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 6/12/2012, at 7:48 PM, Ravikumar Govindarajan <ravikumar.govindarajan@gmail.com>
wrote:

> Thanks Aaron,
> 
> I found the implementation in CLibrary.trySkipCache() method which uses fadvise DONTNEED
flag after going through https://issues.apache.org/jira/browse/CASSANDRA-1470
> 
> I also came across the link mentioned in JIRA http://blog.mikemccandless.com/2010/06/lucene-and-fadvisemadvise.html?showComment=1303235497682#c2572106601600642254
> 
> which says 2.6.29 version above has implemented madvise SEQUENTIAL in a better manner.
> 
> So for memory mapped files, compaction can do a madvise SEQUENTIAL instead of current
DONTNEED flag after detecting appropriate OS versions. Will this help?
> 
> --
> Ravi
> 
> On Thu, Dec 6, 2012 at 8:19 AM, aaron morton <aaron@thelastpickle.com> wrote:
> Background http://en.wikipedia.org/wiki/Memory-mapped_file
> 
>> Is it going to load only relevant pages per SSTable on read or is it going to load
an entire SSTable on first access?
> 
> It will load what is requested, and maybe some additional data taking into account the
amount of memory available for caches. 
> 
>> Say suppose compaction kicks in. Will it then evict hot MMapped pages for read and
substitute it with a lot of pages involving full SSTables?
> 
> Some file access in cassandra, such as compaction, hints to the OS that the reads should
not be cached. Technically is uses posix_fadvise if you want to look it up.
> 
> Cheers
> 
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Developer
> New Zealand
> 
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 5/12/2012, at 11:04 PM, Ravikumar Govindarajan <ravikumar.govindarajan@gmail.com>
wrote:
> 
>> Thanks Aaron,
>> 
>> I am not quite clear on how MMap loads SSTables other than the fact that it kicks
in only during a first-time access
>> 
>> Is it going to load only relevant pages per SSTable on read or is it going to load
an entire SSTable on first access?
>> 
>> Say suppose compaction kicks in. Will it then evict hot MMapped pages for read and
substitute it with a lot of pages involving full SSTables?
>> 
>> --
>> Ravi
>> 
>> On Wed, Dec 5, 2012 at 1:22 AM, aaron morton <aaron@thelastpickle.com> wrote:
>>> Will MMapping data files be detrimental for reads, in this case?
>> No. 
>> 
>>> In general, when should we opt for MMap data files and what are the factors that
need special attention when enabling the same?
>> mmapping is the default, so I would say use it until you have a reason not to. 
>> 
>> mmapping will map the entire file, but pages of data are read into memory on demand
and purged when space is needed. 
>> 
>> Cheers
>> 
>> -----------------
>> Aaron Morton
>> Freelance Cassandra Developer
>> New Zealand
>> 
>> @aaronmorton
>> http://www.thelastpickle.com
>> 
>> On 4/12/2012, at 11:59 PM, Ravikumar Govindarajan <ravikumar.govindarajan@gmail.com>
wrote:
>> 
>>> Our current SSTable sizes are far greater than RAM. {150 Gigs of data, 32GB RAM}.
Currently we run with mlockall and mmap_index_only options and don't experience swapping at
all.
>>> 
>>> We use wide rows and size-tiered-compaction, so a given key will definitely be
spread across multiple sstables. Will MMapping data files be detrimental for reads, in this
case?
>>> 
>>> In general, when should we opt for MMap data files and what are the factors that
need special attention when enabling the same?
>>> 
>>> --
>>> Ravi
>> 
>> 
> 
> 


Mime
View raw message