[
https://issues.apache.org/jira/browse/HBASE-14575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14986635#comment-14986635
]
Ted Yu commented on HBASE-14575:
--------------------------------
In HRegion#doClose(), we have :
{code}
synchronized (writestate) {
// Disable compacting and flushing by background threads for this
// region.
canFlush = !writestate.readOnly;
writestate.writesEnabled = false;
LOG.debug("Closing " + this + ": disabling compactions & flushes");
waitForFlushesAndCompactions();
}
{code}
waitForFlushesAndCompactions() would wait for writestate.compacting to come
down to 0.
> Reduce scope of compactions holding region lock
> -----------------------------------------------
>
> Key: HBASE-14575
> URL: https://issues.apache.org/jira/browse/HBASE-14575
> Project: HBase
> Issue Type: Sub-task
> Components: Compaction, regionserver
> Reporter: Nick Dimiduk
> Assignee: Nick Dimiduk
> Attachments: 14575-v1.patch, 14575-v2.patch, 14575-v3.patch,
> 14575-v4.patch, 14575.v00.patch
>
>
> Per [~devaraj]'s idea on parent issue, let's see if we can reduce the scope
> of critical section under which compactions hold the region read lock.
> Here is summary from parent issue:
> Another idea is we can reduce the scope of when the read lock is held during
> compaction. In theory the compactor only needs a region read lock while
> deciding what files to compact and at the time of committing the compaction.
> We're protected from the case of region close events because compactions are
> checking (every 10k bytes written) if the store has been closed in order to
> abort in such a case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)