Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

36
SOUTH BAY CASSANDRA USERS MARCH 2016 BACKUP AND RESTORE FOR APACHE CASSANDRA Aaron Morton @aaronmorton CEO Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License

Transcript of Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Page 1: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

SOUTH BAY CASSANDRA USERS MARCH 2016

BACKUP AND RESTORE FOR APACHE CASSANDRA

Aaron Morton@aaronmorton

CEO

Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License

Page 2: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

About The Last Pickle.

Work with clients to deliver and improve Apache Cassandra based solutions.

Apache Cassandra Committer and DataStax MVPs.

Based in New Zealand, Australia, France & USA.

Page 3: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Why BackupCommit Log Archiving

Table Snap

Page 4: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Why Backup?

Replication is for Availability.

Page 5: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Why Backup?

Replicate good data as fast as bad data.

Page 6: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Three Reasons To Backup…

Business Continuity Planning / Disaster Recovery Planning

(AKA Data Centre is on fire.)

Page 7: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Three Reasons To Backup…

Environment Cloning(AKA Let’s make a new Data Centre.)

Page 8: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Three Reasons To Backup…

Point In Time Recovery(AKA Bad deploy.)

Page 9: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Why BackupCommit Log Archiving

Table Snap

Page 10: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log

Writes are first written to the Commit Log (on each node).

Page 11: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log

Commit Log can grow up to 8GB in size.

Page 12: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log

Commit Log is made up of 32 MB Segments.

Page 13: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log

Commit Log contains Mutations, which have row

fragments.

Page 14: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log

Mutations are serialised in the form they are sent over the

wire.

Page 15: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Commit Log Archiving

Archive Segment when full.

Restore Segments at startup (if specified).

Page 16: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

commitlog_archiving.propertiesarchive_command=

Run this command when a Segment is full.

Page 17: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

commitlog_archiving.propertiesrestore_directories=

Read all files in this CSV list of directories at startup and run restore_command for each.

Page 18: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

commitlog_archiving.propertiesrestore_point_in_time=

Stop processing mutations with a timestamp higher than this.

Page 19: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

commitlog_archiving.propertiesprecision=MICROSECONDS

Precision used for timestamps.

Page 20: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Cassandra Parameter-Dcassandra.replayList=

CSV white list of keyspace.table to replay.

Page 21: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Why BackupCommit Log Archiving

Table Snap

Page 22: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Table Snap

Page 23: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Table Snap

Continually Backup and Restore SSTables to S3.

Page 24: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablesnap

Watch for files closed or moved into the data

directories.

Page 25: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablesnap

Upload all SSTable components, splitting large files, using multiple threads.

Page 26: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablesnap

Includes a list of SSTables in the directory.

Page 27: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablesnap

Skips file if it was removed by compaction during processing.

Page 28: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablechop

Deletes old files from the backup set to implement a

rolling window.

Page 29: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablechop

Specify how many days to keep.

Page 30: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tablechop

Use - -debug to reduce the stress.

(AKA Dry Run, does not delete the files.)

Page 31: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tableslurp

Slurp SSTables from S3 to a local directory for restoring.

Page 32: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

tableslurp

Restores the latest backup set, or a named backup set.

Page 33: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Table Snap Pros

Simple.

Page 34: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Table Snap Cons

No monitoring.Manual restore into cluster.No support for topology

change.

Page 35: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Thanks.

Page 36: Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra

Aaron Morton@aaronmorton

Co-Founder & Principal Consultantwww.thelastpickle.com