You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2015/05/10 22:36:00 UTC

[jira] [Commented] (CASSANDRA-9299) Fix counting of tombstones towards TombstoneOverwhelmingException

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

Aleksey Yeschenko commented on CASSANDRA-9299:
----------------------------------------------

Attached three patches - for 2.0, 2.1, and trunk, respectively, and pushed to three branches for cassci to do its thing later:
- https://github.com/iamaleksey/cassandra/commits/9299-2.0
- https://github.com/iamaleksey/cassandra/commits/9299-2.1
- https://github.com/iamaleksey/cassandra/commits/9299-trunk

The 2.0 patch is the most conservative and changes as little as possible - the only correction there is that cells shadowed by a range tombstone or a partition tombstone won't count towards the warning and the exception.

So removing a whole partition of cells in one go, or removing a map with 100k elements, will no longer trigger TOE.

The 2.1 patch goes slightly further, and short-circuits {{SliceQueryFilter.collectReducedColumns()}} logic if we stumble upon a tombstone past its gc grace, or, say, an expired TTL column with gc grace for the table set to 0.

The trunk patch goes slightly further still and gets rid of one redundant column tester pass over the range tombstones in {{container.maybeAppendColumn()}} call, relying instead on the result of the {{columnCounter.count()}} test.

> Fix counting of tombstones towards TombstoneOverwhelmingException
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-9299
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9299
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Aleksey Yeschenko
>            Assignee: Aleksey Yeschenko
>             Fix For: 2.1.x, 2.0.x
>
>         Attachments: 9299-2.0.txt, 9299-2.1.txt, 9299-trunk.txt
>
>
> CASSANDRA-6042 introduced warning on too many tombstones scanned, then CASSANDRA-6117 introduced a hard TombstoneOverwhelmingException condition.
> However, at least {{SliceQuerFilter.collectReducedColumn()}} seems to have the logic wrong. Cells that are covered by a range tombstone or a partition high level deletion, still count towards {{ColumnCounter}}'s {{ignored}} register.
> Thus it's possible to have an otherwise healthy (though large) dropped partition read cause an exception that shouldn't be there.
> The only things that should count towards the exception are cell tombstones and range tombstones (CASSANDRA-8527), but never ever live cells shadowed by any kind of tombstone.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)