[infinispan-dev] Using infinispan as quorum-based nosql

vitalii.tymchyshyn at ubs.com vitalii.tymchyshyn at ubs.com
Mon Jun 3 09:23:16 EDT 2013


Hello.

Thanks for your information. I will subscribe and vote for the issues noted.
In the meantime I've implemented hacky JgroupsTransport that "downgrades" all (but CacheViewControlCommand and StateTransferControlCommand) SYNCHRONOUS invokeRemotely calls to SYNCHRONOUS_IGNORE_LEAVERS and checks if required number of answers was received with a filter (I've tried to use original invokeRemotely return value but it often returns some strange value, like empty map). It seems to do the trick for me. But I am still not sure if this has any side effects.

For now I can see merge problem in my test: different values are picked during merge. I am going to dig a little deeper and follow up. But it's already a little strange for me, since the test algorithm is:
1)Assign "old" value to full cluster (it's REPL_SYNC mode)
2)Block coordinator
3)Writer "new" value to one of two remaining nodes. It's syncrhonized to second remaining node
4)Unblock coordinator
5)Wait (I could not find a good way to wait for state transfer but wait in this case).
6)Check the value on coordinator

And in my test I am randomly getting "old" or "new" in assert. I am now going to check why. May be I will need to "reinitialize" smaller cluster part to ensure data is taken from the quorum part of the cluster.

Best regards, Vitalii Tymchyshyn

-----Original Message-----
From: infinispan-dev-bounces at lists.jboss.org [mailto:infinispan-dev-bounces at lists.jboss.org] On Behalf Of Galder Zamarreno
Sent: Monday, June 03, 2013 9:04 AM
To: infinispan -Dev List
Subject: Re: [infinispan-dev] Using infinispan as quorum-based nosql


On May 30, 2013, at 5:10 PM, vitalii.tymchyshyn at ubs.com wrote:

> Hello.
> 
> We are going to use Infinispan in our project as NoSQL solution. It 
> performs quite well for us, but currently we've faced next problem.
> Note: We are using Infinispan 5.1.6 in SYNC_REPL mode in small cluster.
> The problem is that when any node fails, any running transactions wait 
> for Jgroups to decide if it've really failed or not and rollback 
> because of SuspectException after that. While we can live with a 
> delay, we'd really like to skip rolling back. As for me, I actually 
> don't see a reason for rollback because transactions started after 
> leave will succeed. So, as for me, previously running transactions 
> could do the same.

We're aware of the problem (https://issues.jboss.org/browse/ISPN-2402).

@Dan, has there been any updates on this?

> The question for is if node that left will synchronize it's state 
> after merge (even if merge was done without infinispan restart). As 
> for me, it should or it won't work correctly at all.

This is not in yet: https://issues.jboss.org/browse/ISPN-263

> So, I've found RpcManager's ResponseMode.SYNCHRONOUS_IGNORE_LEAVERS 
> and think on switching to it for RpcManager calls that don't specify 
> ResponseMode explicitly. As for me, it should do the trick. Also, I am 
> going to enforce Quorum number of reponses, but that's another story.
> So, how do you think, would it work?

^ Not sure if that'll work. @Dan?

> P.S. Another Q for me, how does it work now, when SuspectException is 
> thrown from CommitCommand broadcasting. Af far as I can see, commit is 
> still done on some remote nodes (that are still in the cluster), but 
> rolled back on local node because of this exception. Am I correct?

^ How Infinispan reacts in these situations depends a lot on the type of communications (synchronous or asynchronous) and the transaction configuration. Mircea can provide more details on this.

Cheers,

> This
> can cause inconsistencies, but we must leave with something in 
> peer-to-peer world :) The only other option is to switch from 
> write-all, read-local to write-quorum, read-quorum scenario that is 
> too complex move for Infinispan as for me.
> 
> Best regards, Vitalii Tymchyshyn
> 
> Please visit our website at
> http://financialservicesinc.ubs.com/wealth/E-maildisclaimer.html
> for important disclosures and information about our e-mail policies. 
> For your protection, please do not transmit orders or instructions by 
> e-mail or include account numbers, Social Security numbers, credit 
> card numbers, passwords, or other personal information.
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


--
Galder Zamarreño
galder at redhat.com
twitter.com/galderz

Project Lead, Escalante
http://escalante.io

Engineer, Infinispan
http://infinispan.org


_______________________________________________
infinispan-dev mailing list
infinispan-dev at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev
Please visit our website at 
http://financialservicesinc.ubs.com/wealth/E-maildisclaimer.html 
for important disclosures and information about our e-mail 
policies. For your protection, please do not transmit orders 
or instructions by e-mail or include account numbers, Social 
Security numbers, credit card numbers, passwords, or other 
personal information.



More information about the infinispan-dev mailing list