[ISSUE] (TEPHRA-56) Clear entries from invalid list by querying last major compaction timestamp for tables

0 views
Skip to first unread message

Gary Helmling (JIRA)

unread,
Jan 28, 2015, 5:59:45 PM1/28/15
to tephr...@googlegroups.com
Gary Helmling created an issue
 
Tephra / Sub-task TEPHRA-56
Clear entries from invalid list by querying last major compaction timestamp for tables
Issue Type: Sub-task Sub-task
Assignee: Gary Helmling
Created: 28/Jan/15 2:58 PM
Priority: Major Major
Reporter: Gary Helmling

HBASE-12859 adds reporting for the last (oldest) major compaction timestamp per region and per table. We can build on top of this to determine when we can know that all potential writes for a given failed or invalidated transaction have been cleared.

As a prerequisite, we will need to change TransactionProcessor so that if fails compaction attempts if it is unable to load a transaction state snapshot or if the loaded snapshot is too old. This gives us a deterministic boundary for the possible invalid transactions that would have been cleared.

With this in place, we should be able to:

  • query the oldest major compaction timestamp for all tables with transactions enabled
  • drop any entries from the invalid list older than: oldest timestamp - transaction snapshot loading window - transaction timeout.

This will work for "short" transactions at least, which are subject to timeouts. "Long" transactions, however, will still cause a problem for this, as they do not time out. One possible solution would be to have a separate timeout for long transactions, for example 1 day, and use that as the transaction timeout in the calculation.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.1.5#6160-sha1:a61a0fc)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages