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

Viraj Jasani updated PHOENIX-7388:
----------------------------------
    Summary: Metadata updates should fail-fast for noisy neighbor using Phoenix 
RowLock  (was: Phoenix metadata updates should fail-fast for noisy neighbor)

> Metadata updates should fail-fast for noisy neighbor using Phoenix RowLock
> --------------------------------------------------------------------------
>
>                 Key: PHOENIX-7388
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7388
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.2.0, 5.1.3
>            Reporter: Viraj Jasani
>            Assignee: Viraj Jasani
>            Priority: Major
>
> Phoenix is high scale, low latency, high throughput multi-tenant database. 
> The multi-tenancy can come with its own set of challenges, one of which is 
> noisy neighbour problem. Single client can initiate very high num of tenant 
> view updates (e.g. drop views, create views, create index etc) while all 
> other clients are making RPC calls to SYSTEM.CATALOG for retrieving the 
> updated PTable objects. With more metadata update calls, it is possible for 
> more RPC calls to get stuck while waiting for HBase RowLock to be acquired. 
> We have also seen high memory pressure with increasing num of metadata update 
> APIs.
>  
> HBase RowLock by default has 30s of timeout for acquiring lock, which is 
> configurable by {_}hbase.rowlock.wait.duration{_}. While this is applicable 
> at the cluster level, Phoenix metadata RPC calls are expected to have much 
> lower timeout value for the RowLock acquisition because metadata updates and 
> reads are expected to be extremely low latency operations. If this is not the 
> case, we are essentially blocking some client from getting either enough RPC 
> handlers to execute getTable RPC call or causing significant delays with 
> ongoing getTable calls.
> While HBASE-28797 has a proposal to introduce new Region API for acquiring 
> RowLock, Phoenix already has its own RowLock implementation and its already 
> being used by getTable RPC calls while protecting metadata server side cache 
> updates (PHOENIX-7363).
> The proposal of this Jira is to eliminate using HBase RowLock for all Phoenix 
> metadata operations and use Phoenix RowLock with default timeout of 3 sec.



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

Reply via email to