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.
