cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9299) Fix counting of tombstones towards TombstoneOverwhelmingException
Date Sun, 10 May 2015 20:36:00 GMT


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:

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:
>             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

View raw message