[ 
https://issues.apache.org/jira/browse/HBASE-22086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16809317#comment-16809317
 ] 

Josh Elser commented on HBASE-22086:
------------------------------------

{code:java}
+    // Remove old table snapshots data
+    removeExistingTableSnapshotSizes();
+
     // For each table, compute the size of each snapshot
     Map<String,Long> namespaceSnapshotSizes = 
computeSnapshotSizes(snapshotsToComputeSize);
 
+    // Remove old namespace snapshots data
+    removeExistingNamespaceSnapshotSizes();
+
     // Write the size data by namespaces to the quota table.
     // We need to do this "globally" since each FileArchiverNotifier is 
limited to its own Table.
     persistSnapshotSizesForNamespaces(namespaceSnapshotSizes);
{code}
My only concern here is that, with an otherwise stable system, we'll be 
creating load on the system, deleting and then re-writing the same 
SpaceQuotaSnapshot.

Instead of deleting all SpaceQuotaSnapshots in the quota table, could you 
submit deletions only for the HBase snapshots which we didn't compute a new 
SpaceQuotaSnapshot for?

Sorry I missed your message last week on the approach. I think your 
explanations make sense. Looking back at the code makes me agree with you – I 
can't come up with something that wouldn't work.

> space quota issue: deleting snapshot doesn't update the usage of table
> ----------------------------------------------------------------------
>
>                 Key: HBASE-22086
>                 URL: https://issues.apache.org/jira/browse/HBASE-22086
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ajeet Rai
>            Assignee: Sakthi
>            Priority: Minor
>         Attachments: hbase-22086.master.001.patch
>
>
> space quota issue: deleting snapshot doesn't update the usage of table
> Steps: 1:
> set_quota TYPE => SPACE, TABLE => 'bugatti', LIMIT => '7M', POLICY => 
> NO_WRITES_COMPACTIONS
> 2: ./hbase pe --table="bugatti" --nomapred --rows=200 sequentialWrite 10
> 3: ./hbase pe --table="bugatti" --nomapred --rows=200 sequentialWrite 10
> 4: snapshot 'bugatti','bugatti_snapshot'
> 5: ./hbase pe --table="bugatti" --nomapred --rows=200 sequentialWrite 10
> 6: major_compact 'bugatti'
> 7: delete_snapshot 'bugatti_snapshot'
> now check the usage and observe that it is not getting updated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to