> 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.govindara...@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 <aa...@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.govindara...@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 <aa...@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.govindara...@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 >> >> > >