[JBoss JIRA] (ISPN-9414) Native server using GraalVM native-image
by Tristan Tarrant (JIRA)
Tristan Tarrant created ISPN-9414:
-------------------------------------
Summary: Native server using GraalVM native-image
Key: ISPN-9414
URL: https://issues.jboss.org/browse/ISPN-9414
Project: Infinispan
Issue Type: Sub-task
Components: Server
Reporter: Tristan Tarrant
After we have ISPN-8124 we should also ensure that the server can be built by GraalVM's native-image tool to reduce footprint and startup time.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-8124) Create Lean Infinispan Server
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-8124?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-8124:
----------------------------------
Description:
We need to create an infinispan server that utilises the minimum number of dependencies during run time. This is in order to reduce the server's memory footprint as much as possible. The resulting server will have the following characteristics:
* Based upon jboss-modules
* Mostly compatible with existing standalone configuration
* Expose management operations via Jolokia
was:
We need to create an infinispan server that utilises the minimum number of dependencies during run time. This is in order to reduce the server's memory footprint as much as possible. The resulting server will have the following characteristics:
* Based upon jboss-modules
* Compatible with existing standalone configuration
* Expose management operations via Jolokia
> Create Lean Infinispan Server
> -----------------------------
>
> Key: ISPN-8124
> URL: https://issues.jboss.org/browse/ISPN-8124
> Project: Infinispan
> Issue Type: Sub-task
> Components: Server
> Affects Versions: 9.1.0.Final
> Reporter: Ryan Emerson
> Assignee: Tristan Tarrant
> Fix For: 10.0.0.Final
>
>
> We need to create an infinispan server that utilises the minimum number of dependencies during run time. This is in order to reduce the server's memory footprint as much as possible. The resulting server will have the following characteristics:
> * Based upon jboss-modules
> * Mostly compatible with existing standalone configuration
> * Expose management operations via Jolokia
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-9413) Thorntail/Infinispan fat jar
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-9413?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant closed ISPN-9413.
---------------------------------
Resolution: Duplicate Issue
The future Infinispan server will not be based on either WildFly nor Thorntail.
> Thorntail/Infinispan fat jar
> ----------------------------
>
> Key: ISPN-9413
> URL: https://issues.jboss.org/browse/ISPN-9413
> Project: Infinispan
> Issue Type: Feature Request
> Components: Server
> Environment: All
> Reporter: Jeremy Davis
>
> It would be nice to have a fat jar version of infinispan runnign int Thorntail. It would be easy for production deployments, and great for spinning up locally during development. It would be useful even if it isn't feature complete with the WildFly version.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-8124) Create Lean Infinispan Server
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-8124?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant reassigned ISPN-8124:
-------------------------------------
Assignee: Tristan Tarrant (was: Ryan Emerson)
> Create Lean Infinispan Server
> -----------------------------
>
> Key: ISPN-8124
> URL: https://issues.jboss.org/browse/ISPN-8124
> Project: Infinispan
> Issue Type: Sub-task
> Components: Server
> Affects Versions: 9.1.0.Final
> Reporter: Ryan Emerson
> Assignee: Tristan Tarrant
> Fix For: 10.0.0.Final
>
>
> We need to create an infinispan server that utilises the minimum number of dependencies during run time. This is in order to reduce the server's memory footprint as much as possible. The resulting server will have the following characteristics:
> * Based upon jboss-modules
> * Compatible with existing standalone configuration
> * Expose management operations via Jolokia
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-8124) Create Lean Infinispan Server
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-8124?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-8124:
----------------------------------
Fix Version/s: 10.0.0.Final
> Create Lean Infinispan Server
> -----------------------------
>
> Key: ISPN-8124
> URL: https://issues.jboss.org/browse/ISPN-8124
> Project: Infinispan
> Issue Type: Sub-task
> Components: Server
> Affects Versions: 9.1.0.Final
> Reporter: Ryan Emerson
> Assignee: Tristan Tarrant
> Fix For: 10.0.0.Final
>
>
> We need to create an infinispan server that utilises the minimum number of dependencies during run time. This is in order to reduce the server's memory footprint as much as possible. The resulting server will have the following characteristics:
> * Based upon jboss-modules
> * Compatible with existing standalone configuration
> * Expose management operations via Jolokia
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-9413) Thorntail/Infinispan fat jar
by Jeremy Davis (JIRA)
Jeremy Davis created ISPN-9413:
----------------------------------
Summary: Thorntail/Infinispan fat jar
Key: ISPN-9413
URL: https://issues.jboss.org/browse/ISPN-9413
Project: Infinispan
Issue Type: Feature Request
Components: Server
Environment: All
Reporter: Jeremy Davis
It would be nice to have a fat jar version of infinispan runnign int Thorntail. It would be easy for production deployments, and great for spinning up locally during development. It would be useful even if it isn't feature complete with the WildFly version.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-9412) HotRod Transaction Cache PESSIMISTIC locking mode is not locking the key in another transaction
by Diego Lovison (JIRA)
[ https://issues.jboss.org/browse/ISPN-9412?page=com.atlassian.jira.plugin.... ]
Diego Lovison edited comment on ISPN-9412 at 8/8/18 12:56 PM:
--------------------------------------------------------------
I would like to be able to reproduce this error in an integration test.
I created the method `public void testMultiThreadsPessimisticLockMode(Method method)` in the class `TxFunctionalTest`
{code:java}
public void testMultiThreadsPessimisticLockMode(Method method) throws ExecutionException, InterruptedException {
final K k1 = kvGenerator.generateKey(method, 1);
final V v1 = kvGenerator.generateValue(method, 1);
final V v2 = kvGenerator.generateValue(method, 2);
RemoteCache<K, V> remoteCache = remoteCacheWithForceReturnValue();
final TransactionManager tm = remoteCache.getTransactionManager();
ExecutorService executorService = Executors.newFixedThreadPool(2);
Future<V> f1 = executorService.submit(() -> {
try {
tm.begin();
V returnValue = remoteCache.put(k1, v1);
Thread.sleep(2000);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Future<V> f2 = executorService.submit(() -> {
try {
Thread.sleep(500);
tm.begin();
V returnValue = remoteCache.put(k1, v2);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Assert.assertNull(f1.get());
Assert.assertNotNull(f2.get());
}
{code}
The problem is that my integration test is failing due:
{noformat}
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.testMultiThreadsPessimisticLockMode(TxFunctionalTest.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:196)
at org.infinispan.commons.test.TestNGLongTestsHook.run(TestNGLongTestsHook.java:24)
at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:208)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:635)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:139)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.lambda$testMultiThreadsPessimisticLockMode$0(TxFunctionalTest.java:432)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}
Here is the branch: https://github.com/diegolovison/infinispan/tree/ISPN_9412_pessimistic_lock
----
If I do the following change:
1 - Create additional methods
{code:java}
private RemoteCache<K, V> remoteCacheWithForceReturnValue() {
return remoteCacheWithForceReturnValue(true);
}
private RemoteCache<K, V> remoteCacheWithForceReturnValue(boolean forceReturnValue) {
return client(0).getCache(cacheName(), forceReturnValue);
}
{code}
2 - Replace
{code:java}
RemoteCache<K, V> remoteCache = remoteCacheWithForceReturnValue();
{code}
with
{code:java}
RemoteCache<K, V> remoteCache = remoteCacheWithForceReturnValue(false);
{code}
3 - The error go away but we won't be able to test because the values are null
was (Author: dlovison):
The pseudo-code above is not easy to reproduce and I used System.out.println(new Date()) in a sample application to be able to find this bug.
I would like to be able to reproduce this error in an integration test.
I created the method `public void testMultiThreadsPessimisticLockMode(Method method)` in the class `TxFunctionalTest`
{code:java}
public void testMultiThreadsPessimisticLockMode(Method method) throws ExecutionException, InterruptedException {
final K k1 = kvGenerator.generateKey(method, 1);
final V v1 = kvGenerator.generateValue(method, 1);
final V v2 = kvGenerator.generateValue(method, 2);
RemoteCache<K, V> remoteCache = remoteCacheWithForceReturnValue();
final TransactionManager tm = remoteCache.getTransactionManager();
ExecutorService executorService = Executors.newFixedThreadPool(2);
Future<V> f1 = executorService.submit(() -> {
try {
tm.begin();
V returnValue = remoteCache.put(k1, v1);
Thread.sleep(2000);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Future<V> f2 = executorService.submit(() -> {
try {
Thread.sleep(500);
tm.begin();
V returnValue = remoteCache.put(k1, v2);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Assert.assertNull(f1.get());
Assert.assertNotNull(f2.get());
}
{code}
The problem is that my integration test is failing due:
{noformat}
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.testMultiThreadsPessimisticLockMode(TxFunctionalTest.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:196)
at org.infinispan.commons.test.TestNGLongTestsHook.run(TestNGLongTestsHook.java:24)
at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:208)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:635)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:139)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.lambda$testMultiThreadsPessimisticLockMode$0(TxFunctionalTest.java:432)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}
Here is the branch: https://github.com/diegolovison/infinispan/tree/ISPN_9412_pessimistic_lock
> HotRod Transaction Cache PESSIMISTIC locking mode is not locking the key in another transaction
> -----------------------------------------------------------------------------------------------
>
> Key: ISPN-9412
> URL: https://issues.jboss.org/browse/ISPN-9412
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Priority: Critical
>
> I am expecting the thread 2 be blocked in `cache.put(k1, v1)` until thread 1 has committed the transaction
> According to the docs, using Pessimistic transactional cache, when cache.put(k1,v1) returns, k1 is locked and no other transaction running anywhere in the cluster can write to it. Reading k1 is still possible. The lock on k1 is released when the transaction completes (commits or rollbacks).
> Cache Configuration
> {code:java}
> return new org.infinispan.configuration.cache.ConfigurationBuilder()
> .clustering().cacheMode(CacheMode.DIST_SYNC)
> .jmxStatistics().enable()
> .transaction()
> .cacheStopTimeout(0L)
> .transactionManagerLookup(new EmbeddedTransactionManagerLookup())
> .lockingMode(LockingMode.PESSIMISTIC)
> .locking().isolationLevel(IsolationLevel.REPEATABLE_READ)
> .build();
> {code}
> Steps to reproduce
> {noformat}
> Thread t1 = {
> tm.begin()
> cache.put(k1, v1)
> long operation like 1 minute
> tm.commit()
> }
> Thread t2 = {
> long operation like 15 seconds
> tm.begin()
> cache.put(k1, v1)
> tm.commit()
> }
> t1.start()
> t2.start()
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-9412) HotRod Transaction Cache PESSIMISTIC locking mode is not locking the key in another transaction
by Diego Lovison (JIRA)
[ https://issues.jboss.org/browse/ISPN-9412?page=com.atlassian.jira.plugin.... ]
Diego Lovison commented on ISPN-9412:
-------------------------------------
The pseudo-code above is not easy to reproduce and I used System.out.println(new Date()) in a sample application to be able to find this bug.
I would like to be able to reproduce this error in an integration test.
I created the method `public void testMultiThreadsPessimisticLockMode(Method method)` in the class `TxFunctionalTest`
{code:java}
public void testMultiThreadsPessimisticLockMode(Method method) throws ExecutionException, InterruptedException {
final K k1 = kvGenerator.generateKey(method, 1);
final V v1 = kvGenerator.generateValue(method, 1);
final V v2 = kvGenerator.generateValue(method, 2);
RemoteCache<K, V> remoteCache = remoteCacheWithForceReturnValue();
final TransactionManager tm = remoteCache.getTransactionManager();
ExecutorService executorService = Executors.newFixedThreadPool(2);
Future<V> f1 = executorService.submit(() -> {
try {
tm.begin();
V returnValue = remoteCache.put(k1, v1);
Thread.sleep(2000);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Future<V> f2 = executorService.submit(() -> {
try {
Thread.sleep(500);
tm.begin();
V returnValue = remoteCache.put(k1, v2);
tm.commit();
return returnValue;
} catch (Throwable t) {
try {
tm.rollback();
} catch (SystemException e) {
throw new IllegalStateException(e);
}
throw new IllegalStateException(t);
}
});
Assert.assertNull(f1.get());
Assert.assertNotNull(f2.get());
}
{code}
The problem is that my integration test is failing due:
{noformat}
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.testMultiThreadsPessimisticLockMode(TxFunctionalTest.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:196)
at org.infinispan.commons.test.TestNGLongTestsHook.run(TestNGLongTestsHook.java:24)
at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:208)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:635)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:139)
at org.infinispan.client.hotrod.tx.TxFunctionalTest.lambda$testMultiThreadsPessimisticLockMode$0(TxFunctionalTest.java:432)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}
Here is the branch: https://github.com/diegolovison/infinispan/tree/ISPN_9412_pessimistic_lock
> HotRod Transaction Cache PESSIMISTIC locking mode is not locking the key in another transaction
> -----------------------------------------------------------------------------------------------
>
> Key: ISPN-9412
> URL: https://issues.jboss.org/browse/ISPN-9412
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Priority: Critical
>
> I am expecting the thread 2 be blocked in `cache.put(k1, v1)` until thread 1 has committed the transaction
> According to the docs, using Pessimistic transactional cache, when cache.put(k1,v1) returns, k1 is locked and no other transaction running anywhere in the cluster can write to it. Reading k1 is still possible. The lock on k1 is released when the transaction completes (commits or rollbacks).
> Cache Configuration
> {code:java}
> return new org.infinispan.configuration.cache.ConfigurationBuilder()
> .clustering().cacheMode(CacheMode.DIST_SYNC)
> .jmxStatistics().enable()
> .transaction()
> .cacheStopTimeout(0L)
> .transactionManagerLookup(new EmbeddedTransactionManagerLookup())
> .lockingMode(LockingMode.PESSIMISTIC)
> .locking().isolationLevel(IsolationLevel.REPEATABLE_READ)
> .build();
> {code}
> Steps to reproduce
> {noformat}
> Thread t1 = {
> tm.begin()
> cache.put(k1, v1)
> long operation like 1 minute
> tm.commit()
> }
> Thread t2 = {
> long operation like 15 seconds
> tm.begin()
> cache.put(k1, v1)
> tm.commit()
> }
> t1.start()
> t2.start()
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months
[JBoss JIRA] (ISPN-9411) Shutdown process hangs on same cache each time
by Sergey Chernolyas (JIRA)
[ https://issues.jboss.org/browse/ISPN-9411?page=com.atlassian.jira.plugin.... ]
Sergey Chernolyas updated ISPN-9411:
------------------------------------
Environment: Linux, cluster with two nodes (was: Linux, cluster with two nodex)
> Shutdown process hangs on same cache each time
> ----------------------------------------------
>
> Key: ISPN-9411
> URL: https://issues.jboss.org/browse/ISPN-9411
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.3.1.Final
> Environment: Linux, cluster with two nodes
> Reporter: Sergey Chernolyas
> Attachments: server_log.txt
>
>
> Each time, shutdown process hangs on same cache.
> Configuration of the caches are:
> {code:title=Cache configurations|linenumbers=true|language=XML}
> <distributed-cache name="ACCESSORIES" owners="2" segments="1024" mode="SYNC">
> <state-transfer await-initial-transfer="true" enabled="true" timeout="2400000" chunk-size="2048"/>
> <partition-handling when-split="ALLOW_READ_WRITES" merge-policy="PREFERRED_ALWAYS"/>
> <memory>
> <object size="1000000" strategy="REMOVE"/>
> </memory>
> <indexing index="LOCAL">
> <property name="default.directory_provider">infinispan</property>
> <property name="default.indexmanager">org.infinispan.query.indexmanager.InfinispanIndexManager
> </property>
> <property name="default.worker.execution">async</property>
> <property name="default.index_flush_interval">500</property>
> <property name="default.indexwriter.merge_factor">30</property>
> <property name="default.indexwriter.merge_max_size">1024</property>
> <property name="default.indexwriter.ram_buffer_size">256</property>
> <property name="default.locking_cachename">LuceneIndexesLocking_accessories</property>
> <property name="default.data_cachename">LuceneIndexesData_accessories</property>
> <property name="default.metadata_cachename">LuceneIndexesMetadata_accessories</property>
> </indexing>
> <rocksdb-store preload="true" path="/data/rocksdb/accessories/data">
> <expiration path="/data/rocksdb/accessories/expired"/>
> </rocksdb-store>
> </distributed-cache>
> <distributed-cache name="LuceneIndexesData_accessories">
> <state-transfer await-initial-transfer="true" enabled="true" timeout="2400000" chunk-size="2048"/>
> <partition-handling when-split="ALLOW_READ_WRITES" merge-policy="PREFERRED_ALWAYS"/>
> <rocksdb-store preload="true" fetch-state="true" passivation="true" name="accessories_index_data" path="/data/rocksdb/accessories_index_data/data">
> <expiration path="/data/rocksdb/accessories_index_data/expired"/>
> </rocksdb-store>
> </distributed-cache>
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 3 months