[ 
https://issues.apache.org/jira/browse/HBASE-29479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Charles Connell resolved HBASE-29479.
-------------------------------------
    Resolution: Fixed

> QuotaCache is not correctly populated until runs of QuotaRefresherChore
> -----------------------------------------------------------------------
>
>                 Key: HBASE-29479
>                 URL: https://issues.apache.org/jira/browse/HBASE-29479
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Charles Connell
>            Assignee: Charles Connell
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 2.7.0, 3.0.0-beta-2, 2.6.4
>
>
> When asked for a QuotaLimiter for a given user, the QuotaCache checks if that 
> user's quota state is cached. If it is, it returns a QuotaLimiter based on 
> the cached information. If not, it inserts default quota state into the 
> cache, and returns a default QuotaLimiter. On the next run of the 
> QuotaRefresherChore, it looks in the {{hbase:quota}} table for the quota 
> settings for every user in the cache. The consequence of this is: from when 
> the QuotaCache is first asked about a user, until the next run of 
> QuotaRefresherChore, the QuotaLimiters for that user are wrong.
> I think it's unacceptable for QuotaCache to return incorrect information. I 
> can see from a code comment that it was implemented this was as a performance 
> optimization, to avoid doing a Get on the quota table in the query handler 
> path. However, the performance consequences of not enforcing quotas can be a 
> lot worse that a few Gets.
> In this ticket I'm adding logic to QuotaCache so it immediately fetches quota 
> information for a user from the quota table any time that user is not in its 
> cache.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to