cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7817) when entire row is deleted, the records in the row seem to counted toward TombstoneOverwhelmingException
Date Fri, 22 Aug 2014 06:23:11 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14106530#comment-14106530
] 

Sylvain Lebresne commented on CASSANDRA-7817:
---------------------------------------------

I believe that is working as designed. The goal of the threshold is to warn during a read
if too many "cells" are skipped due to tombstoning, and this because the experience is that
people weren't understanding why their query was being slow. If you have a huge partition
and you delete it, the code still has to read and skip all previous record until those are
compacted away.

Now I understand the naming of the option could sounds slightly confusing in that case, and
a possibly more precise name could be "tombstoned_cells_warn_threshold", but I'm not sure
it's worth changing the option name at this point.

> when entire row is deleted, the records in the row seem to counted toward TombstoneOverwhelmingException
> --------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7817
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7817
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Cassandra version 2.0.9
>            Reporter: Digant Modha
>            Priority: Minor
>
> I saw this behavior in development cluster, but was able to reproduce it in a single
node setup.  In development cluster I had more than 52,000 records and used default values
for tombstone threshold.
> For testing purpose, I used lower numbers for thresholds:
> tombstone_warn_threshold: 100
> tombstone_failure_threshold: 1000
> Here are the steps:
> table:
> CREATE TABLE cstestcf_conflate_data (
>   key ascii,
>   datehr int,
>   validfrom timestamp,
>   asof timestamp,
>   copied boolean,
>   datacenter ascii,
>   storename ascii,
>   value blob,
>   version ascii,
>   PRIMARY KEY ((key, datehr), validfrom, asof)
> ) WITH CLUSTERING ORDER BY (validfrom DESC, asof DESC) ;
> cqlsh:cstestks> select count(*) from cstestcf_conflate_data WHERE KEY='BK_2' and datehr
= 2014082119;
>  count
> -------
>    470
> (1 rows)
> cqlsh:cstestks> delete from cstestcf_conflate_data WHERE KEY='BK_2' and datehr = 2014082119;
> cqlsh:cstestks> select count(*) from cstestcf_conflate_data WHERE KEY='BK_2' and datehr
= 2014082119;
> Request did not complete within rpc_timeout.
> Exception in system.log:
> java.lang.RuntimeException: org.apache.cassandra.db.filter.TombstoneOverwhelmingException
>         at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1931)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.cassandra.db.filter.TombstoneOverwhelmingException
>         at org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:202)
>         at org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
>         at org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
>         at org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
>         at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
>         at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:53)
>         at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1547)
>         at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1376)
>         at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:333)
>         at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:65)
>         at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1363)
>         at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1927)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message