Hi Tom,

Please correct me if am wrong in understanding the below statement.

The CheckedFuture will produce a derived TransactionCommitFailedException 
indicating there's no leader or it timed out. You have to wait for the 
CheckedFuture to be completed one way or another.  It may take some number of 
seconds for it to time out (there are retries to wait for a new shard leader) 
so it's best not to block on the future.

<SATISH> : If we introduce a wait mechanism for the CheckedFuture to be 
completed, how will this be different than using the 
CheckedFuture.checkedGet(). In either of these cases the caller (main) thread 
gets blocked. So are any other ways for the main thread to wait for the 
CheckedFuture to get completed ?

Regards,
-Satish

From: Tom Pantelis [mailto:tompante...@gmail.com]
Sent: Thursday, February 23, 2017 12:27 AM
To: Satish Dutt <sd...@advaoptical.com>
Cc: controller-dev@lists.opendaylight.org
Subject: Re: [controller-dev] Shard leader down scenario



On Wed, Feb 22, 2017 at 1:36 PM, Satish Dutt 
<sd...@advaoptical.com<mailto:sd...@advaoptical.com>> wrote:
Hi All,

We have a 3-node clustered deployment.

Code extract :

WriteTransaction writeTxn = dataBroker.newWriteOnlyTransaction();
writeTxn.put()
CheckedFuture<> checkedFuture = writeTxn.submit()


Scenario :

1) Three nodes in the setup N1, N2, N3
2) N3 is the shard leader.
3) All RPC requests from the NBI are sent to N2.
4)  First two requests are successful.
5)  Before the third request, N3 goes down and there is NO SHARD LEADER
6)  Third RPC request is sent to N2


Now will the checkedFuture value be null or error since there is no 
shard-leader ? Are there any ways to know the shard-leader is down without 
blocking on the checkedFuture  and send an error in the RPC response to the NBI 
user  ?


The CheckedFuture will produce a derived TransactionCommitFailedException 
indicating there's no leader or it timed out. You have to wait for the 
CheckedFuture to be completed one way or another.  It may take some number of 
seconds for it to time out (there are retries to wait for a new shard leader) 
so it's best not to block on the future.

We are basically hitting this issue while scaling the requests.

Regards
-Satish

_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org<mailto:controller-dev@lists.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/controller-dev

_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to