[
https://issues.apache.org/jira/browse/HBASE-15433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15192690#comment-15192690
]
Jianwei Cui commented on HBASE-15433:
-------------------------------------
Thanks for your comment and sorry to reply late [~ashish singhi].
{quote}
So in catch clause first let us catch QEE and then IOE. If QEE is caught then
we will not update the quota information.
{quote}
Yes, we don't need to update the quota information if QEE is caught. However,
if IOE is caught, this means {{checkAndUpdateNamespaceRegionQuota}} succeeded
while the following {{restoreSnapshot(SnapshotDescription, HTableDescriptor)}}
failed, and the quota information has been updated by the region count in the
snapshot. For example, the original region count is 10 for the table, and there
are 5 regions in the snapshot, the region count will be updated to 5 in such
case? and we need to reset the region count to 10 for the table in {{catch}}?
> SnapshotManager#restoreSnapshot not update table and region count quota
> correctly when encountering exception
> -------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-15433
> URL: https://issues.apache.org/jira/browse/HBASE-15433
> Project: HBase
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 2.0.0
> Reporter: Jianwei Cui
> Attachments: HBASE-15433-trunk-v1.patch, HBASE-15433-trunk-v2.patch,
> HBASE-15433-trunk.patch
>
>
> In SnapshotManager#restoreSnapshot, the table and region quota will be
> checked and updated as:
> {code}
> try {
> // Table already exist. Check and update the region quota for this
> table namespace
> checkAndUpdateNamespaceRegionQuota(manifest, tableName);
> restoreSnapshot(snapshot, snapshotTableDesc);
> } catch (IOException e) {
>
> this.master.getMasterQuotaManager().removeTableFromNamespaceQuota(tableName);
> LOG.error("Exception occurred while restoring the snapshot " +
> snapshot.getName()
> + " as table " + tableName.getNameAsString(), e);
> throw e;
> }
> {code}
> The 'checkAndUpdateNamespaceRegionQuota' will fail if regions in the snapshot
> make the region count quota exceeded, then, the table will be removed in the
> 'catch' block. This will make the current table count and region count
> decrease, following table creation or region split will succeed even if the
> actual quota is exceeded.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)