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

Tanuj Khurana updated PHOENIX-8007:
-----------------------------------
    Description: PHOENIX-7727 added _phoenix.index.useServerMetadata_ (default 
true) to eliminate the client _addServerCache_ RPC by having the region server 
rebuild the I{_}ndexMaintainer{_} from its PTable cache per batch 
{_}PhoenixIndexMetaDataBuilder.getIndexMetaDataCacheFromPTable{_}.  It builds a 
fresh PhoenixConnection per batch which contributes to wall latency and under 
concurrent load has lock contention. I have attached both wall and lock 
flamegraphs which show the contribution of new connection. I think we can 
create the connection lazily per region but we have to be careful if the 
connection is reaped and closed for example when cqsi closes.  (was: 
PHOENIX-7727 added `{_}phoenix.index.useServerMetadata{_}` (default 
*{*}true{*}*) to eliminate the client `addServerCache` RPC by having the region 
server rebuild the `IndexMaintainer` from its PTable cache per batch 
(`PhoenixIndexMetaDataBuilder.getIndexMetaDataCacheFromPTable`).  It builds a 
fresh
`PhoenixConnection` per batch which contributes to wall latency and under 
concurrent load has lock contention. I have attached both wall and lock 
flamegraphs which show the contribution of new connection. I think we can 
create the connection lazily per region but we have to be careful if the 
connection is reaped and closed for example when cqsi closes.)

> Index metadata lookup on the server creates a new Server connection on every 
> commit
> -----------------------------------------------------------------------------------
>
>                 Key: PHOENIX-8007
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-8007
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.4.0, 5.3.1
>            Reporter: Tanuj Khurana
>            Priority: Major
>         Attachments: 7727-server-lock-flamegraph.html, 
> 7727-server-wall-flamegraph.html
>
>
> PHOENIX-7727 added _phoenix.index.useServerMetadata_ (default true) to 
> eliminate the client _addServerCache_ RPC by having the region server rebuild 
> the I{_}ndexMaintainer{_} from its PTable cache per batch 
> {_}PhoenixIndexMetaDataBuilder.getIndexMetaDataCacheFromPTable{_}.  It builds 
> a fresh PhoenixConnection per batch which contributes to wall latency and 
> under concurrent load has lock contention. I have attached both wall and lock 
> flamegraphs which show the contribution of new connection. I think we can 
> create the connection lazily per region but we have to be careful if the 
> connection is reaped and closed for example when cqsi closes.



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

Reply via email to