Welcome to Icarus Discussions! #6
Replies: 4 comments 5 replies
-
@smiklosovic I wanted to understand how does Icarus take snapshots and store it in the cloud. I could observe that it creates a data directory and manifest directory. I wanted to know what this manifest directory contains and how is it being created? |
Beta Was this translation helpful? Give feedback.
-
Hi @SuhailRahman , Icarus does "nothing". Everything is done via Esop. Esop is CLI tool which is embedded into Icarus and invoked programmatically. If you have Icarus instance running in a cluster of e.g. three nodes, Icarus per node, one of Icaruses acts as a coordinator and it will send respective backup requests to each node (and to itself) and it tracks the progress and so on. Once a backup request reaches Icarus, it will use Esop stuff (very simply said) and it will act as if you invoked Esop from CLI. Very roughly speaking, based on "entitites" field, BackupOperation (it is a class) will take a snapshot by calling Cassandra node via JMX. It invokes StorageService#takeSnapshot and snaphot is taken for that node. Then it will create manifest, based on what files a snapshot has created, then all SSTables are uploaded and manifest (that json file) is uploaded too. Keep in mind that if there is already the same SSTable remotely, it will just skip it from uploading. Manifest directory contains JSON files. Each file is called "manifest" and it contains the description of the whole backup, each file, with some metadata. This is necessary to upload because based on that manifest there will be files downloaded upon restore. If you want to restore, manifest file is downloaded first and then each file it contains. The previous two paragraphs are done per each node. |
Beta Was this translation helpful? Give feedback.
-
Hi, @smiklosovic, I checked new 2.0.0 release, do I have to have Cassandra structure like /var/lib/cassandra/data/data now? Or is there a way to keep /var/lib/cassandra/data? And I also noticed that RemoveBackupModule is absent in Icarus |
Beta Was this translation helpful? Give feedback.
-
Hi @2ban If you are going to backup, data dirs with your data are specified by "--data-dir" flag which you can specify mutliple times. For Esop invocation, you would do "java esop.jar ... --data-dir /mnt/cassandra/data1 --data-dir /some/other/path/data2 --data-dir /var/lib/data3" ... you got it, right? For Icarus, that translates to an array: "dataDirs": [ "/path1", "path2", "path3" ] I can take a look at removal module, sure. |
Beta Was this translation helpful? Give feedback.
-
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions