Oleg, Thanks for the response. If the commitlog is in periodic mode and the fsync happens every 10 seconds, Cassandra is storing the stuff that needs to be sync'd somewhere for a period of 10 seconds. I'm talking about before it even hits any disk. This has to be in memory, correct?
Parag -----Original Message----- From: Oleg Dulin [mailto:oleg.du...@gmail.com] Sent: Wednesday, April 09, 2014 10:42 AM To: user@cassandra.apache.org Subject: Re: Commitlog questions Parag: To answer your questions: 1) Default is just that, a default. I wouldn't advise raising it though. The bigger it is the longer it takes to restart the node. 2) I think they juse use fsync. There is no queue. All files in cassandra use java.nio buffers, but they need to be fsynced periodically. Look at commitlog_sync parameters in cassandra.yaml file, the comments there explain how it works. I believe the difference between periodic and batch is just that -- if it is periodic, it will fsync every 10 seconds, if it is batch it will fsync if there were any changes within a time window. On 2014-04-09 10:06:52 +0000, Parag Patel said: > >>>>> 1) Why is the default 4GB? Has anyone changed this? What are >>>>> some aspects to consider when determining the commitlog size? >>>>> 2) If the commitlog is in periodic mode, there is a property >>>>> to set a time interval to flush the incoming mutations to disk. >>>>> This implies that there is a queue inside Cassandra to hold this >>>>> data in memory until it is flushed. >>>>>>>>> a. Is there a name for this queue? >>>>>>>>> b. Is there a limit for this queue? >>>>>>>>> c. Are there any tuning parameters for this queue? > > Thanks, > Parag -- Regards, Oleg Dulin http://www.olegdulin.com