[ 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)