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.
http://wiki.apache.org/cassandra/Operations?action=diff&rev1=50&rev2=51

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

  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" java.io.IOException: Cannot run program "ln": 
java.io.IOException: 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.

Reply via email to