cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lu, Boying" <>
Subject RE: Some questions to updating and tombstone
Date Thu, 17 Nov 2016 09:33:40 GMT
Very appreciate to all of you, I’ll study the blog.

From: Alain RODRIGUEZ []
Sent: 2016年11月16日 23:26
Cc: Fabrice Facorat
Subject: Re: Some questions to updating and tombstone

Hi Boying,

Old value is not tombstone, but remains until compaction

Be careful, the above is generally true but not necessary.

Tombstones can actually be generated while using update in some corner cases. Using collections
or prepared statements.

I wrote a detailed blog post about deletes and tombstones in Cassandra precisely to avoid
answering this kind of question again and again on the mailing list, as explaining correctly
is a bit hard and I am a lazy guy. I also talked about it at the last Cassandra summit. If
you are going to use Cassandra (and deletes) I think one of these might be of interest to

If you still have questions after reading it, I would be very pleased to help you further,
but I believe this should be helpful.

Alain Rodriguez - @arodream -<>

The Last Pickle - Apache Cassandra Consulting

2016-11-16 10:15 GMT+01:00 Shalom Sagges <<>>:
Hi Fabrice,

Just a small (out of the topic) question I couldn't find an answer to. What is a slice in
Cassandra? (e.g. Maximum tombstones per slice)


[Image removed by sender.]

Shalom Sagges


T: +972-74-700-4035<tel:%2B972-74-700-4035>

[Image removed by sender.]<>

[Image removed by sender.]<>

[Image removed by sender.]<>

We Create Meaningful Connections

[Image removed by sender.]<>

On Tue, Nov 15, 2016 at 6:38 PM, Fabrice Facorat <<>>
If you don't want tombstones, don't generate them ;)
More seriously, tombstones are generated when:
- doing a DELETE
- TTL expiration
- set a column to NULL

However tombstones are an issue only if for the same value, you have many tombstones (i.e
you keep overwriting the same values with datas and tombstones). Having 1 tombstone for 1
value is not an issue, having 1000 tombstone for 1 value is a problem. Do really your use
case overwrite data with DELETE or  NULL ?
So that's why what you may want to know is how many tombstones you have on average when reading
a value. This is available in:
- nodetool cfstats<> : Average tombstones per slice/Maximum tombstones
per slice
- JMX : org.apache.cassandra.metrics:keyspace=<ks>,name=TombstoneScannedHistogram,scope=<cf>,type=ColumnFamily

2016-11-15 10:05 GMT+01:00 Lu, Boying <<>>:
Thanks a lot for your help.

We are using STCS strategy and not using TTL

Is there any API that we can use to query the current number of tombstones in a CF?

From: Anuj Wadehra [<>]
Sent: 2016年11月14日 22:20
Subject: Re: Some questions to updating and tombstone

Hi Boying,

I agree with Vladimir.If compaction is not compacting the two sstables with updates soon,
disk space issues will be wasted. For example, if the updates are not closer in time, first
update might be in a big table by the time second update is being written in a new small table.
STCS wont compact them together soon.

Just adding column values with new timestamp shouldnt create any tombstones. But if data is
not merged for long, disk space issues may arise. If you are STCS,just  yo get an idea about
the extent of the problem you can run major compaction and see the amount of disk space created
with that( dont do this in production as major compaction has its own side effects).

Which compaction strategy are you using?
Are these updates done with TTL?


On Mon, 14 Nov, 2016 at 1:54 PM, Vladimir Yudovin
<<>> wrote:
Hi Boying,

UPDATE write new value with new time stamp. Old value is not tombstone, but remains until
compaction. gc_grace_period is not related to this.

Best regards, Vladimir Yudovin,
Winguzone<> - Hosted Cloud Cassandra
Launch your cluster in minutes.

---- On Mon, 14 Nov 2016 03:02:21 -0500Lu, Boying <<>>
wrote ----

Hi, All,

Will the Cassandra generates a new tombstone when updating a column by using CQL update statement?

And is there any way to get the number of tombstones of a column family since we want to void
too many tombstones within gc_grace_period?



Close the World, Open the Net

This message may contain confidential and/or privileged information.
If you are not the addressee or authorized to receive this on behalf of the addressee you
must not use, copy, disclose or take action based on this message or any information herein.
If you have received this message in error, please advise the sender immediately by reply
email and delete this message. Thank you.

View raw message