Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D5B1E18C00 for ; Sun, 20 Sep 2015 22:38:19 +0000 (UTC) Received: (qmail 11019 invoked by uid 500); 20 Sep 2015 22:38:15 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 10979 invoked by uid 500); 20 Sep 2015 22:38:15 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 10966 invoked by uid 99); 20 Sep 2015 22:38:15 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Sep 2015 22:38:15 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id ABC7A180973 for ; Sun, 20 Sep 2015 22:38:14 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.994 X-Spam-Level: ** X-Spam-Status: No, score=2.994 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=3, MIME_QP_LONG_LINE=0.001, RP_MATCHES_RCVD=-0.006, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id wZ3SJo0epxJX for ; Sun, 20 Sep 2015 22:38:11 +0000 (UTC) Received: from mail.crowdstrike.com (dragos.crowdstrike.com [208.42.226.9]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTPS id ADBCC2074F for ; Sun, 20 Sep 2015 22:38:11 +0000 (UTC) Received: from casmbox01.crowdstrike.sys (10.100.11.66) by ee01.crowdstrike.sys (10.100.0.12) with Microsoft SMTP Server (TLS) id 15.0.847.32; Sun, 20 Sep 2015 15:37:46 -0700 Received: from casmbox01.crowdstrike.sys (10.100.11.66) by casmbox01.crowdstrike.sys (10.100.11.66) with Microsoft SMTP Server (TLS) id 15.0.847.32; Sun, 20 Sep 2015 15:37:40 -0700 Received: from casmbox01.crowdstrike.sys ([fe80::9509:3711:75cb:b49f]) by casmbox01.crowdstrike.sys ([fe80::9509:3711:75cb:b49f%12]) with mapi id 15.00.0847.030; Sun, 20 Sep 2015 15:37:40 -0700 From: Jeff Jirsa To: "user@cassandra.apache.org" Subject: Re: Help with tombstones and compaction Thread-Topic: Help with tombstones and compaction Thread-Index: AQHQ8+5Wh/ZjrrH/P0K9Bnml3scLnp5GAgmA Date: Sun, 20 Sep 2015 22:37:39 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.100.0.9] Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha256; boundary="B_3525608257_857419186" MIME-Version: 1.0 --B_3525608257_857419186 Content-type: multipart/alternative; boundary="B_3525608257_1471449473" --B_3525608257_1471449473 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable 2.1.4 is getting pretty old. There=E2=80=99s a DTCS deletion tweak in 2.1.5 ( htt= ps://issues.apache.org/jira/browse/CASSANDRA-8359 ) that may help you. 2.1.5 and 2.1.6 have some memory leak issues in DTCS, so go to 2.1.7 or new= er (probably 2.1.9 unless you have a compelling reason not to go to 2.1.9) From: Venkatesh Arivazhagan Reply-To: "user@cassandra.apache.org" Date: Sunday, September 20, 2015 at 2:48 PM To: "user@cassandra.apache.org" Subject: Help with tombstones and compaction Hi Guys, I have a Cassandra 2.1.4 cluster with 14 nodes. I am using it primarily for= storing time series data collected via KairosDB. The default TTL for data inserted into the column family named data_points = is 12hrs. I have also set the gc_grace_seconds to 12 hrs. In-spite of this my disk space keeps on increasing and it looks like tombst= ones are never dropped. It looks like compactions are happening on a regular basis. The SSTable cou= nt does not seem outrageous either. It is constantly between ~10 to ~22. Am I doing anything wrong? Is there a way to mitigate this? Attached: * DESC output for my keyspace * Disk usage graph * LiveSSTable Count graph ---------------------------------------------------------------------------= ----------------------------------------------- CREATE KEYSPACE kairosdb WITH replication =3D {'class': 'SimpleStrategy', 're= plication_factor': '3'} AND durable_writes =3D true; CREATE TABLE kairosdb.data_points ( key blob, column1 blob, value blob, PRIMARY KEY (key, column1) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (column1 ASC) AND bloom_filter_fp_chance =3D 0.01 AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment =3D '' AND compaction =3D {'max_sstable_age_days': '365', 'base_time_seconds': '= 3600', 'max_threshold': '32', 'timestamp_resolution': 'MILLISECONDS', 'enabl= ed': 'true', 'tombstone_compaction_interval': '1', 'min_threshold': '4', 'to= mbstone_threshold': '.1', 'class': 'org.apache.cassandra.db.compaction.DateT= ieredCompactionStrategy'} AND compression =3D {'sstable_compression': 'org.apache.cassandra.io.comp= ress.LZ4Compressor'} AND dclocal_read_repair_chance =3D 0.1 AND default_time_to_live =3D 43200 AND gc_grace_seconds =3D 43200 AND max_index_interval =3D 2048 AND memtable_flush_period_in_ms =3D 0 AND min_index_interval =3D 128 AND read_repair_chance =3D 0.1 AND speculative_retry =3D 'NONE'; CREATE TABLE kairosdb.row_key_index ( key blob, column1 blob, value blob, PRIMARY KEY (key, column1) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (column1 ASC) AND bloom_filter_fp_chance =3D 0.01 AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment =3D '' AND compaction =3D {'min_threshold': '4', 'class': 'org.apache.cassandra.= db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression =3D {'sstable_compression': 'org.apache.cassandra.io.comp= ress.LZ4Compressor'} AND dclocal_read_repair_chance =3D 0.1 AND default_time_to_live =3D 0 AND gc_grace_seconds =3D 43200 AND max_index_interval =3D 2048 AND memtable_flush_period_in_ms =3D 0 AND min_index_interval =3D 128 AND read_repair_chance =3D 0.1 AND speculative_retry =3D 'NONE'; CREATE TABLE kairosdb.string_index ( key blob, column1 text, value blob, PRIMARY KEY (key, column1) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (column1 ASC) AND bloom_filter_fp_chance =3D 0.01 AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment =3D '' AND compaction =3D {'min_threshold': '4', 'class': 'org.apache.cassandra.= db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression =3D {'sstable_compression': 'org.apache.cassandra.io.comp= ress.LZ4Compressor'} AND dclocal_read_repair_chance =3D 0.1 AND default_time_to_live =3D 0 AND gc_grace_seconds =3D 43200 AND max_index_interval =3D 2048 AND memtable_flush_period_in_ms =3D 0 AND min_index_interval =3D 128 AND read_repair_chance =3D 0.1 AND speculative_retry =3D 'NONE'; ---------------------------------------------------------------------------= ----------------------------------------------- --B_3525608257_1471449473 Content-type: text/html; charset="UTF-8" Content-transfer-encoding: quoted-printable
2.1.4 is getting pr= etty old. There’s a DTCS deletion tweak in 2.1.5 ( https://issues.apache.org/j= ira/browse/CASSANDRA-8359 ) that may help you.

=
2.1.5 and 2.1.6 have some memory leak issues in DTCS, so go to 2.1.7 or= newer (probably 2.1.9 unless you have a compelling reason not to go to 2.1.= 9)


From: Venkatesh A= rivazhagan
Reply-To: "user@cassandra.apache.org"
Date: Sunday, September 20, 2015 at 2:48 PM
<= span style=3D"font-weight:bold">To: "user@cassandra.apache.org"
S= ubject: Help with tombstones and compaction

=
Hi Guys,
I have a Cassandra 2.1= .4 cluster with 14 nodes. I am using it primarily for storing time series da= ta collected via KairosDB.
The default TTL for data inserted into the column family named data_point= s is 12hrs. I have also set the gc_grace_seconds to 12 hrs.
In-spite of this my disk space keeps on = increasing and it looks like tombstones are never dropped.

It looks like compactions are happening on a regular basis. = The SSTable count does not seem outrageous either. It is constantly between = ~10 to ~22.

Am I doing anything wrong? Is t= here a way to mitigate this?

Attached:
* DESC output for my keyspac= e
* Disk usage graph
* LiveSSTable Count graph

---------------------------------------------------------------------------= -----------------------------------------------

CREATE KEYSPACE kairosdb WITH replication =3D {'class': 'SimpleStrategy', 're= plication_factor': '3'}  AND durable_writes =3D true;

CREATE TABLE kairosdb.data_points (
    key blob,
    column1 blob,
    value blob,
    PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
    AND CLUSTERING ORDER BY (column1 ASC)
    AND bloom_filter_fp_chance =3D 0.01
    AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment =3D ''
    AND compaction =3D {'max_sstable_age_days': '365', 'base_time_s= econds': '3600', 'max_threshold': '32', 'timestamp_resolution': 'MILLISECOND= S', 'enabled': 'true', 'tombstone_compaction_interval': '1', 'min_threshold'= : '4', 'tombstone_threshold': '.1', 'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}
    AND compression =3D {'sstable_compression': 'org.apache.cassand= ra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance =3D 0.1
    AND default_time_to_live =3D 43200
    AND max_index_interval =3D 2048
    AND memtable_flush_period_in_ms =3D 0
    AND min_index_interval =3D 128
    AND read_repair_chance =3D 0.1
    AND speculative_retry =3D 'NONE';

CREATE TABLE kairosdb.row_key_index (
    key blob,
    column1 blob,
    value blob,
    PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
    AND CLUSTERING ORDER BY (column1 ASC)
    AND bloom_filter_fp_chance =3D 0.01
    AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment =3D ''
    AND compaction =3D {'min_threshold': '4', 'class': 'org.apache.= cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'= }
    AND compression =3D {'sstable_compression': 'org.apache.cassand= ra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance =3D 0.1
    AND default_time_to_live =3D 0
    AND gc_grace_seconds =3D 43200
    AND max_index_interval =3D 2048
    AND memtable_flush_period_in_ms =3D 0
    AND min_index_interval =3D 128
    AND read_repair_chance =3D 0.1
    AND speculative_retry =3D 'NONE';

CREATE TABLE kairosdb.string_index (
    key blob,
    column1 text,
    value blob,
    PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
    AND CLUSTERING ORDER BY (column1 ASC)
    AND bloom_filter_fp_chance =3D 0.01
    AND caching =3D '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment =3D ''
    AND compaction =3D {'min_threshold': '4', 'class': 'org.apache.= cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'= }
    AND compression =3D {'sstable_compression': 'org.apache.cassand= ra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance =3D 0.1
    AND default_time_to_live =3D 0
    AND gc_grace_seconds =3D 43200
    AND max_index_interval =3D 2048
    AND memtable_flush_period_in_ms =3D 0
    AND min_index_interval =3D 128
    AND read_repair_chance =3D 0.1
    AND speculative_retry =3D 'NONE';
---------------------------------------------------------------------------= -----------------------------------------------
--B_3525608257_1471449473-- --B_3525608257_857419186 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIISYAYJKoZIhvcNAQcCoIISUTCCEk0CAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0B BwGggg8wMIIJlTCCB32gAwIBAgIKJGjoIQAAAAACYjANBgkqhkiG9w0BAQsFADBQMRMwEQYK CZImiZPyLGQBGRYDc3lzMRswGQYKCZImiZPyLGQBGRYLY3Jvd2RzdHJpa2UxHDAaBgNVBAMT E2Nyb3dkc3RyaWtlLVJPT1QtQ0EwHhcNMTUwNTE4MTcwNTU4WhcNMjMwNTE2MTcwNTU4WjCB nTETMBEGCgmSJomT8ixkARkWA3N5czEbMBkGCgmSJomT8ixkARkWC2Nyb3dkc3RyaWtlMRAw DgYDVQQLEwdDU1VzZXJzMRQwEgYDVQQLEwtFbmdpbmVlcmluZzEWMBQGA1UEAxMNSmVmZiBS LiBKaXJzYTEpMCcGCSqGSIb3DQEJARYaSmVmZi5KaXJzYUBjcm93ZHN0cmlrZS5jb20wggIi MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDz/juPunY45nC7cetdyhafX455PB0ps4zm rZ/jR7NZfNWK11qq4CsWu9Agifcx7KlsmWSjn1EMopttM8axhSpgZOEKaiKSUI7NkihHKcpd ITBmx3XyhU2Dj5wBoftLbp54W+6AC5NYmsrlsqb1sw9CbRQRiALR+amfwzeZZOTKIpl2MYUJ 0qGkikpcl1wGQ1pXZYM4Bi3fa36IACgzgosONucxKMF9uOX8MUYaxdcU2wOpxvh3P4xw/CHO SQJsTaijjLDz+cZ7osYZmBlLdbHN2A55JxzMYlbNEb7xuOp7e3ooV8TV5I7LaD6ewPqu3B9Y nJnXoF+rNuf14D1tZWnT6BUBHIxNk1OTloOihowRaItAsSCUoY+KkRSFPWfwEOUEiynoSCUa gwyqIov+QP/KsGUf1J22yajmH9zexvkqoLohN56qhrAa+v3fZF0UyGk5V+EKeK4zxfu7tFwH Y9KJOPIl9jN5EBRiEpbe+j+6w8FO6+hOf3Pmr2R/IbQl9AP+saDqHGrCJrOUHZnNx+9YZ1pU TvUd/3qgQODgO28z/XqXmqqXefiwiqT9Ubmoiz7T//u069y3zquTD3PKoRnJLJuV4UIfnEdP HBIpClo9OQ2iz3CPGen+eTZprtaOlM926uweNTwDdsrjX3KiV2+bqLoLcAT2lzAFv1pSHp7O kQIDAQABo4IEITCCBB0wDgYDVR0PAQH/BAQDAgWgMD4GCSsGAQQBgjcVBwQxMC8GJysGAQQB gjcVCITk0CKH/Pdpg9mDAoHlqxCG+PJlgW6Gi7JugryReAIBZAIBFTCBlAYJKoZIhvcNAQkP BIGGMIGDMA4GCCqGSIb3DQMCAgIAgDAOBggqhkiG9w0DBAICAIAwBwYFKw4DAgcwCgYIKoZI hvcNAwcwCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBLTALBglghkgBZQMEARYwCwYJYIZIAWUD BAEZMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwHQYDVR0OBBYEFFeyMg1s94zEmeUrFyUT 1gtu/8mqMB8GA1UdIwQYMBaAFAnL7V4xGc1Nowmrlmwbj20X638YMIIBEwYDVR0fBIIBCjCC AQYwggECoIH/oIH8hoG6bGRhcDovLy9DTj1jcm93ZHN0cmlrZS1ST09ULUNBLENOPWRjMSxD Tj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmln dXJhdGlvbixEQz1jcm93ZHN0cmlrZSxEQz1zeXM/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlz dD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hj1odHRwOi8vZGMxLmNy b3dkc3RyaWtlLnN5cy9DZXJ0RW5yb2xsL2Nyb3dkc3RyaWtlLVJPT1QtQ0EuY3JsMIIBKgYI KwYBBQUHAQEEggEcMIIBGDCBtgYIKwYBBQUHMAKGgalsZGFwOi8vL0NOPWNyb3dkc3RyaWtl LVJPT1QtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2Vz LENOPUNvbmZpZ3VyYXRpb24sREM9Y3Jvd2RzdHJpa2UsREM9c3lzP2NBQ2VydGlmaWNhdGU/ YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MF0GCCsGAQUFBzABhlFo dHRwOi8vZGMxLmNyb3dkc3RyaWtlLnN5cy9DZXJ0RW5yb2xsL2RjMS5jcm93ZHN0cmlrZS5z eXNfY3Jvd2RzdHJpa2UtUk9PVC1DQS5jcnQwKQYDVR0lBCIwIAYIKwYBBQUHAwIGCCsGAQUF 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 Q9/VZQPaauQtIQ== --B_3525608257_857419186--