phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajeshbabu Chintaguntla (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-3569) Deadlock when updating both of local and global index
Date Mon, 09 Jan 2017 11:05:59 GMT


Rajeshbabu Chintaguntla commented on PHOENIX-3569:

[~chia7712] Moving the index updates to postPut/postDelete will not ensure consistency. For
local indexes we are ok until HBase version contains  HBASE-15600 is released. After HBASE-15600
we don't see this kind of issues.
Can you provide the full stack trace?

> Deadlock when updating both of local and global index
> -----------------------------------------------------
>                 Key: PHOENIX-3569
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.9.0, 4.8.2
>            Reporter: ChiaPing Tsai
>            Priority: Critical
>         Attachments: PHOENIX-3569.v0.patch, PHOENIX-3569.v1.patch
> We update the global index in Observer#postBatchMutate, but the hook is called before
completing the mvcc.
> If ParallelWriterIndexCommitter are busy to update the local index, the other updates
for global index will be blocked and the mvcc of data table won't be completed. The deadlock
happens since the ParallelWriterIndexCommitter will never complete the updates for local index.
> We can reproduce the deadlock through the following step.
> # create a data table with a local and a global index.
> # create 10+ (DEFAULT_CONCURRENT_INDEX_WRITER_THREADS) threads which disable the auto
commit to submit data
> # wait for the deadlock. the rs log will show the following message. "STUCK: MultiVersionConcurrencyControl{readPoint=8790,
> It seems to me that we should update the both of local and global index on the hook of
postPut and postDelete.
> Any suggestions are welcomed.

This message was sent by Atlassian JIRA

View raw message