[
https://issues.apache.org/jira/browse/HBASE-12859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14290904#comment-14290904
]
Lars Hofhansl commented on HBASE-12859:
---------------------------------------
Note that if you call this from a region observer you do want to reach out to
other region servers (that is a recipe for cluster wide deadlocks when not
enough handler are free).
So you'll only be able to find out the last compaction time for the observer's
region, and hence you still won't know whether you're done with the table in
question.
There are two options:
# store metadata about work to do per region, and then remove it as each region
is major compacted
# store metadata about work to do per table, then you need to be able to track
whether all regions of the table have been major compacted
For #1 one have to keep track of splits and split the "work to do" as well. #2
needs a global view across region servers.
The implementation here does not prescribe what to do
Hence in PHOENIX-1590 we could the following when dropping a view with deferred
delete:
# enumerate all regions. But a work item for each region in some table. During
compaction check that table, and after compaction remove any entries for
regions that a completely done.
# just remember the metadata for the view with some "deferred delete" marker
added. During compaction check that. Then one would with each region server
when the same view is created again (to check whether it's OK or not) and also
periodically from a client with a global view (that does not need to happen
often, as it just cleans up soft-delete rows.
> Major compaction completion tracker
> -----------------------------------
>
> Key: HBASE-12859
> URL: https://issues.apache.org/jira/browse/HBASE-12859
> Project: HBase
> Issue Type: Brainstorming
> Reporter: Lars Hofhansl
> Attachments: 12859-v1.txt, 12859-v2.txt, 12859-v3.txt,
> 12859-wip-UNFINISHED.txt
>
>
> In various scenarios it is helpful to know a guaranteed timestamp up to which
> all data in a table was major compacted.
> We can do that keeping a major compaction timestamp in META.
> A client then can iterate all region of a table and find a definite
> timestamp, which is the oldest compaction timestamp of any of the regions.
> [~apurtell], [~ghelmling], [~giacomotaylor].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)