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

Reply via email to