System and Keyspace Information: 4 Nodes Cassandra 2.0.9 cqlsh 4.1.1 CQL spec 3.1.1 Thrift protocol 19.39.0
java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode) CREATE KEYSPACE restore_test WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '3'}; CREATE TABLE inkr_test ( objid int, creation_date timestamp, data text, PRIMARY KEY ((objid)) ) WITH bloom_filter_fp_chance=0.010000 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.100000 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.000000 AND replicate_on_write='true' AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'SizeTieredCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; ------------------------------------------------------------------------------------------ I created for backup and incremental restore tests some rows. cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (1, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (2, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (3, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (4, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (5, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (6, dateof(now()),'ini. Load'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (7, dateof(now()),'ini. Load'); cqlsh:restore_test> Select * from inkr_test; objid | creation_date | data -------+--------------------------+----------- 5 | 2014-10-29 06:20:06+0100 | ini. Load 1 | 2014-10-29 06:19:50+0100 | ini. Load 2 | 2014-10-29 06:19:56+0100 | ini. Load 4 | 2014-10-29 06:20:02+0100 | ini. Load 7 | 2014-10-29 06:20:13+0100 | ini. Load 6 | 2014-10-29 06:20:09+0100 | ini. Load 3 | 2014-10-29 06:19:59+0100 | ini. Load (7 rows) Following I executed nodetool flush on all nodes to write the data on disk. After that, I created next rows. cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (8, dateof(now()),'nach Backup'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (9, dateof(now()),'nach Backup'); cqlsh:restore_test> insert into inkr_test (objid, creation_date, data) VALUES (10, dateof(now()),'nach Backup'); cqlsh:restore_test> Select * from inkr_test; objid | creation_date | data -------+--------------------------+------------- 5 | 2014-10-29 06:20:06+0100 | ini. Load 10 | 2014-10-29 06:44:12+0100 | nach Backup 1 | 2014-10-29 06:19:50+0100 | ini. Load 8 | 2014-10-29 06:44:00+0100 | nach Backup 2 | 2014-10-29 06:19:56+0100 | ini. Load 4 | 2014-10-29 06:20:02+0100 | ini. Load 7 | 2014-10-29 06:20:13+0100 | ini. Load 6 | 2014-10-29 06:20:09+0100 | ini. Load 9 | 2014-10-29 06:44:04+0100 | nach Backup 3 | 2014-10-29 06:19:59+0100 | ini. Load (10 rows) Now, I executed nodetool flush only on node1 and checked the content from the created sstables: [root@dev-stage-cassandra1 backup]# ll /opt/data/restore_test/inkr_test/ total 68 drwxr-xr-x 2 cassandra cassandra 4096 Oct 29 06:45 backups -rw-r--r-- 1 cassandra cassandra 43 Oct 29 06:35 restore_test-inkr_test-jb-2-CompressionInfo.db -rw-r--r-- 1 cassandra cassandra 213 Oct 29 06:35 restore_test-inkr_test-jb-2-Data.db -rw-r--r-- 1 cassandra cassandra 336 Oct 29 06:35 restore_test-inkr_test-jb-2-Filter.db -rw-r--r-- 1 cassandra cassandra 90 Oct 29 06:35 restore_test-inkr_test-jb-2-Index.db -rw-r--r-- 1 cassandra cassandra 4393 Oct 29 06:35 restore_test-inkr_test-jb-2-Statistics.db -rw-r--r-- 1 cassandra cassandra 80 Oct 29 06:35 restore_test-inkr_test-jb-2-Summary.db -rw-r--r-- 1 cassandra cassandra 79 Oct 29 06:35 restore_test-inkr_test-jb-2-TOC.txt -rw-r--r-- 2 cassandra cassandra 43 Oct 29 06:45 restore_test-inkr_test-jb-3-CompressionInfo.db -rw-r--r-- 2 cassandra cassandra 130 Oct 29 06:45 restore_test-inkr_test-jb-3-Data.db -rw-r--r-- 2 cassandra cassandra 16 Oct 29 06:45 restore_test-inkr_test-jb-3-Filter.db -rw-r--r-- 2 cassandra cassandra 36 Oct 29 06:45 restore_test-inkr_test-jb-3-Index.db -rw-r--r-- 2 cassandra cassandra 4389 Oct 29 06:45 restore_test-inkr_test-jb-3-Statistics.db -rw-r--r-- 2 cassandra cassandra 80 Oct 29 06:45 restore_test-inkr_test-jb-3-Summary.db -rw-r--r-- 2 cassandra cassandra 79 Oct 29 06:45 restore_test-inkr_test-jb-3-TOC.txt [root@dev-stage-cassandra1 backup]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-3-Data.db > /home/sstable2json.log [root@dev-stage-cassandra1 backup]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-2-Data.db > /home/sstable2json2.log # content from restore_test-inkr_test-jb-2-Data.db [ {"key": "00000001","columns": [["","",1414559990531000], ["creation_date","2014-10-29 06:19+0100",1414559990531000], ["data","ini. Load",1414559990531000]]}, {"key": "00000002","columns": [["","",1414559996219000], ["creation_date","2014-10-29 06:19+0100",1414559996219000], ["data","ini. Load",1414559996219000]]}, {"key": "00000004","columns": [["","",1414560002891000], ["creation_date","2014-10-29 06:20+0100",1414560002891000], ["data","ini. Load",1414560002891000]]}, {"key": "00000006","columns": [["","",1414560009867000], ["creation_date","2014-10-29 06:20+0100",1414560009867000], ["data","ini. Load",1414560009867000]]}, {"key": "00000003","columns": [["","",1414559999371000], ["creation_date","2014-10-29 06:19+0100",1414559999371000], ["data","ini. Load",1414559999371000]]} ] # content from restore_test-inkr_test-jb-3-Data.db [ {"key": "00000008","columns": [["","",1414561440089000], ["creation_date","2014-10-29 06:44+0100",1414561440089000], ["data","nach Backup",1414561440089000]]}, {"key": "00000009","columns": [["","",1414561444022000], ["creation_date","2014-10-29 06:44+0100",1414561444022000], ["data","nach Backup",1414561444022000]]} ] After I couldn't find the entire data, I executed nodetool flush on node 2, 3 and 4 and checked the content from the sstables. [root@dev-stage-cassandra2 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-2-Data.db > /home/sstable2json.log [root@dev-stage-cassandra2 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-1-Data.db > /home/sstable2json2.log # content from restore_test-inkr_test-jb-1-Data.db [ {"key": "00000005","columns": [["","",1414560006131000], ["creation_date","2014-10-29 06:20+0100",1414560006131000], ["data","ini. Load",1414560006131000]]}, {"key": "00000002","columns": [["","",1414559996219000], ["creation_date","2014-10-29 06:19+0100",1414559996219000], ["data","ini. Load",1414559996219000]]}, {"key": "00000004","columns": [["","",1414560002891000], ["creation_date","2014-10-29 06:20+0100",1414560002891000], ["data","ini. Load",1414560002891000]]}, {"key": "00000007","columns": [["","",1414560013034000], ["creation_date","2014-10-29 06:20+0100",1414560013034000], ["data","ini. Load",1414560013034000]]} ] # content from restore_test-inkr_test-jb-2-Data.db [ {"key": "0000000a","columns": [["","",1414561452413000], ["creation_date","2014-10-29 06:44+0100",1414561452413000], ["data","nach Backup",1414561452413000]]}, {"key": "00000008","columns": [["","",1414561440089000], ["creation_date","2014-10-29 06:44+0100",1414561440089000], ["data","nach Backup",1414561440089000]]} ] [root@dev-stage-cassandra3 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-2-Data.db > /home/sstable2json.log [root@dev-stage-cassandra3 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-1-Data.db > /home/sstable2json2.log # content from restore_test-inkr_test-jb-1-Data.db [ {"key": "00000005","columns": [["","",1414560006131000], ["creation_date","2014-10-29 06:20+0100",1414560006131000], ["data","ini. Load",1414560006131000]]}, {"key": "00000001","columns": [["","",1414559990531000], ["creation_date","2014-10-29 06:19+0100",1414559990531000], ["data","ini. Load",1414559990531000]]}, {"key": "00000002","columns": [["","",1414559996219000], ["creation_date","2014-10-29 06:19+0100",1414559996219000], ["data","ini. Load",1414559996219000]]}, {"key": "00000004","columns": [["","",1414560002891000], ["creation_date","2014-10-29 06:20+0100",1414560002891000], ["data","ini. Load",1414560002891000]]}, {"key": "00000007","columns": [["","",1414560013034000], ["creation_date","2014-10-29 06:20+0100",1414560013034000], ["data","ini. Load",1414560013034000]]}, {"key": "00000006","columns": [["","",1414560009867000], ["creation_date","2014-10-29 06:20+0100",1414560009867000], ["data","ini. Load",1414560009867000]]}, {"key": "00000003","columns": [["","",1414559999371000], ["creation_date","2014-10-29 06:19+0100",1414559999371000], ["data","ini. Load",1414559999371000]]} ] # content from restore_test-inkr_test-jb-2-Data.db [ {"key": "0000000a","columns": [["","",1414561452413000], ["creation_date","2014-10-29 06:44+0100",1414561452413000], ["data","nach Backup",1414561452413000]]}, {"key": "00000009","columns": [["","",1414561444022000], ["creation_date","2014-10-29 06:44+0100",1414561444022000], ["data","nach Backup",1414561444022000]]} ] [root@dev-stage-cassandra4 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-2-Data.db > /home/sstable2json.log [root@dev-stage-cassandra4 ~]# sstable2json /opt/data/restore_test/inkr_test/restore_test-inkr_test-jb-1-Data.db > /home/sstable2json2.log # content from restore_test-inkr_test-jb-1-Data.db [ {"key": "00000005","columns": [["","",1414560006131000], ["creation_date","2014-10-29 06:20+0100",1414560006131000], ["data","ini. Load",1414560006131000]]}, {"key": "00000001","columns": [["","",1414559990531000], ["creation_date","2014-10-29 06:19+0100",1414559990531000], ["data","ini. Load",1414559990531000]]}, {"key": "00000007","columns": [["","",1414560013034000], ["creation_date","2014-10-29 06:20+0100",1414560013034000], ["data","ini. Load",1414560013034000]]}, {"key": "00000006","columns": [["","",1414560009867000], ["creation_date","2014-10-29 06:20+0100",1414560009867000], ["data","ini. Load",1414560009867000]]}, {"key": "00000003","columns": [["","",1414559999371000], ["creation_date","2014-10-29 06:19+0100",1414559999371000], ["data","ini. Load",1414559999371000]]} ] # content from restore_test-inkr_test-jb-2-Data.db [ {"key": "0000000a","columns": [["","",1414561452413000], ["creation_date","2014-10-29 06:44+0100",1414561452413000], ["data","nach Backup",1414561452413000]]}, {"key": "00000008","columns": [["","",1414561440089000], ["creation_date","2014-10-29 06:44+0100",1414561440089000], ["data","nach Backup",1414561440089000]]}, {"key": "00000009","columns": [["","",1414561444022000], ["creation_date","2014-10-29 06:44+0100",1414561444022000], ["data","nach Backup",1414561444022000]]} ] I assumed, that a flush write all data in the sstables and we can use it for backup and restore. Did I forget something or is my understanding wrong? Best Regards, Sebastian