[
https://issues.apache.org/jira/browse/PHOENIX-2428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15027336#comment-15027336
]
Enis Soztutar commented on PHOENIX-2428:
----------------------------------------
bq. To provide reliable indication of global success requires ProcedureV2 (1.2
and up)
Even with a reliable execution of flush, we do not have any guarantees, no? I
mean with {{Durability.SKIP_WAL}}.
The problem is that, the RS failover is transparent to the client. For example,
if a region server receives {{a}} and {{b}} then fails, there will not be
recovery and the region will open again without any issues. The client will
just retry the requests and the region will start accepting {{c}} and {{d}}. A
flush coming in after a while will write {{c}} and {{d}} to disk, but {{a}} and
{{b}} is gone and there is no way to tell from the client side.
I think we can design a mechanism in HBase itself for exposing an API to be
something like:
(1) Start writes with SKIP_WAL
(2) Either flush all the data previously written or fail.
Roughly, the region can track durably whether a failure happened in between (1)
and (2). Spitballing, I can see how that kind of API would be useful for a lot
of other cases as well (for example kafka -> storm -> HBase) where the client
can replay the data from the checkpoint.
> Disable writing to WAL on initial index population
> --------------------------------------------------
>
> Key: PHOENIX-2428
> URL: https://issues.apache.org/jira/browse/PHOENIX-2428
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Ravi Kishore Valeti
>
> We should not be writing the WAL when we initially populate an index. Not
> only is this obviously more efficient, but it also will prevent the writes
> from being replicated both of which are good.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)