hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Helmling (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-1949) KeyValue expiration by Time-to-Live during major compaction is broken
Date Thu, 05 Nov 2009 18:28:32 GMT

     [ https://issues.apache.org/jira/browse/HBASE-1949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Gary Helmling updated HBASE-1949:

    Fix Version/s: 0.21.0
     Release Note: Fixed expiring of individual column values within rows via the column family
time-to-live configuration.  Previously all column values following the first expired value
in a row would be truncated.  Though in practice this might only be seen when lowering the
TTL configuration on a column family with existing data.
           Status: Patch Available  (was: Open)

I've been running the "v2" patch (applied against the 0.20.1 release) in my development setup
for a couple days with correct expiration behavior.  I should have the patched version deployed
and tested against my live data early next week, at which point I should be able to completely
verify the fix.

This could definitely use a good review by someone more familiar with the compaction process.
 The actual code changes are very minor and the new and existing tests all pass.  But the
changes eliminate early exits from the KeyValue iteration on rows in two places, so it would
be good to assess any performance impact from the change.

> KeyValue expiration by Time-to-Live during major compaction is broken
> ---------------------------------------------------------------------
>                 Key: HBASE-1949
>                 URL: https://issues.apache.org/jira/browse/HBASE-1949
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.20.1
>            Reporter: Gary Helmling
>             Fix For: 0.20.2, 0.21.0
>         Attachments: HBASE-1949-0.20.patch, HBASE-1949-trunk.patch, HBASE-1949-v2-0.20.patch,
> During a major compaction on a region in a column family with a configured TTL, it looks
like all KeyValues in a row after the first expired KeyValue are skipping and thrown out of
the newly written file (regardless of whether the would have been expired or not).
> The StoreScanner is skipping to the next row, even when other columns with a non-expirable
timestamp exists.  Unless I'm misunderstanding it, it seems like it should just seek to the
next column instead.  I discovered this when altering a table to lower the TTL for a column
family and force the expiration of some data which led to the entire row being expired in
some instances.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message