cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Cassandra Wiki] Update of "Operations" by GabrieleRenzi
Date Fri, 14 May 2010 06:40:38 GMT
Dear Wiki user,

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

The "Operations" page has been changed by GabrieleRenzi.
The comment on this change is: add note relte to failing snapshotting.


  See PerformanceTuning
  == Schema management ==
  See LiveSchemaUpdates [refers to functionality in 0.7]
  == Ring management ==
@@ -118, +117 @@

  == Backing up data ==
  Cassandra can snapshot data while online using `nodetool snapshot`.  You can then back up
those snapshots using any desired system, although leaving them where they are is probably
the option that makes the most sense on large clusters.
+ With some combinations of operating system/jvm you may receive an error related to the inability
to create a process during the snapshotting, such as this on Linux
+ {{{
+ Exception in thread "main" Cannot run program "ln":
error=12, Cannot allocate memory
+ }}}
+ Remain calm. The operating system is trying to allocate for the "ln" process a memory space
as large as the parent process (the cassandra server), even if '''it's not going to use it'''.
So if you have a machine with 8GB of RAM and no swap, and you gave 6 to the cassandra server,
it will fail during this because the operating system will wan 12 GB of memory before allowing
you to create the process.
+ This can be worked around depending on the operating system by either creating a swap file,
snapshotting, turning it off or by turning on "memory overcommit". Since the child process
memory is the same as the parent, until it performs an `exec("ln")` call the operating system
will not use the new memory and will just refer to the old one, and everything will work.
  Currently, only flushed data is snapshotted (not data that only exists in the commitlog).
 Run `nodetool flush` first and wait for that to complete, to make sure you get '''all'''
data in the snapshot.
  To revert to a snapshot, shut down the node, clear out the old commitlog and sstables, and
move the sstables from the snapshot location to the live data directory.

View raw message