Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for 
change notification.

The "Durability" page has been changed by JonathanEllis.
http://wiki.apache.org/cassandra/Durability

--------------------------------------------------

New page:
Durability is the property that writes, once completed, will survive 
permanently, even if the server is killed or crashes or loses power.

The naive way to provide durability is to write and 
[[http://linux.die.net/man/2/fsync|fsync]] your data files with each write, but 
this is prohibitively slow in practice because the disk needs to do random 
seeks to write the data to the write location on the physical platters.  
(Remember that each seek costs 5-10ms on rotational media.)

Like most modern systems, Cassandra provides durability by appending writes to 
a commitlog first.  This means that only the commitlog needs to be fsync'd, 
which, if the commitlog is on its own volume, obviates the need for seeking 
since the commitlog is append-only.  Implementation details are in 
ArchitectureCommitlog.

Commitlog behavior is configurable with the CommitLogSync, 
CommitLogSyncPeriodInMS, and CommitLogSyncBatchWindowInMS.  See the sample 
storage configuration for details on using these.  (CommitLogSyncPeriodInMS and 
CommitLogSyncBatchWindowInMS correspond to the 
[[http://www.postgresql.org/docs/8.4/static/runtime-config-wal.html|PostgreSQL 
settings]] of wal_writer_delay and commit_delay, respectively; however, unlike 
PostgreSQL, Cassandra does not allow turning fsync off completely.)

Reply via email to