[Design of Clustering on JBoss (Clusters/JBoss)] - Distributed Lock Mechanism
by epbernard
Hi guys,
For Hibernate Search, I'm in need for a DLM (Distributed Lock Mechanism). Basically a way to acquire a lock, do some stuff and release a lock clusterwise.
This is something that can be available and built on top of JGroups.
I've talked to a RH instructor and we discussed the DLM available in GFS (Global file System).
To summarize:
- there is a quorum (each node having a weight)
- a subset of the cluster is considered free to work if it has quorum/2+1
- when a node ask for a lock, it informs everybody, and everybody has to agree on the lock acquisition
- if a lock is acquired the demanding node is responsible for managing the lock
- if a node is playing the bad guy or has been cut from the majority, it reboots itself or is made rebooted hoping for a recovery
This implementation is not really fully self configurable (entering and leaving the quorum part might have to be manual)
Do you think we can build something similar as a common project for JBoss, I need it but most likely, some other projects need that too.
I'm pretty open to the feature support as well.
There may be something available already?
Thoughts?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4003554#4003554
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4003554
19 years, 2 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Non connected remoting clients throwing java.lang.Exception
by clebert.suconic@jboss.com
I guess we have changed remoting to disconnect clients when ConnectionValidator fails, and I have seen situations where invocations are failing on the testsuite.
FailoverTest(Clustering)::testFailoverMessageOnServer2 is an example of such behavior.
I guess we should change (or ask remoting team to do it), in such way We should not disconnect remoting clients... or at least throw a meaninful Exception we could catch on FailoverValveInterceptor.
This is the exception we are catching now:
anonymous wrote : java.lang.Exception: Can not make remoting client invocation due to not being connected to server.
| at org.jboss.remoting.Client.invoke(Client.java:639)
| at org.jboss.remoting.Client.invoke(Client.java:627)
| at org.jboss.jms.client.delegate.DelegateSupport.invoke(DelegateSupport.java:118)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.StateCreationAspect.handleCreateConsumerDelegate(StateCreationAspect.java:153)
| at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect17.invoke(StateCreationAspect17.java)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.ConsumerAspect.handleCreateConsumerDelegate(ConsumerAspect.java:67)
| at org.jboss.aop.advice.org.jboss.jms.client.container.ConsumerAspect16.invoke(ConsumerAspect16.java)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:177)
| at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:117)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:71)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:112)
| at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:117)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
| at org.jboss.jms.client.delegate.ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.invokeNext(ClientSessionDelegate$createConsumerDelegate_N5002091796089334799.java)
| at org.jboss.jms.client.delegate.ClientSessionDelegate.createConsumerDelegate(ClientSessionDelegate.java)
| at org.jboss.jms.client.JBossSession.createConsumer(JBossSession.java:254)
| at org.jboss.jms.client.JBossSession.createConsumer(JBossSession.java:226)
| at org.jboss.test.messaging.jms.clustering.FailoverTest.testFailoverMessageOnServer2(FailoverTest.java:1483)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at junit.framework.TestCase.runTest(TestCase.java:154)
| at junit.framework.TestCase.runBare(TestCase.java:127)
| at junit.framework.TestResult$1.protect(TestResult.java:106)
| at junit.framework.TestResult.runProtected(TestResult.java:124)
| at junit.framework.TestResult.run(TestResult.java:109)
| at junit.framework.TestCase.run(TestCase.java:118)
| at junit.framework.TestSuite.runTest(TestSuite.java:208)
| at junit.framework.TestSuite.run(TestSuite.java:203)
| at junit.textui.TestRunner.doRun(TestRunner.java:116)
| at junit.textui.TestRunner.start(TestRunner.java:172)
| at org.jboss.test.messaging.tools.junit.SelectiveTestRunner.main(SelectiveTestRunner.java:58)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4003543#4003543
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4003543
19 years, 2 months