[JBoss JIRA] (ISPN-1239) Graceful shutdown should be supported
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-1239?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-1239:
--------------------------------
Fix Version/s: (was: 6.0.0.Final)
> Graceful shutdown should be supported
> -------------------------------------
>
> Key: ISPN-1239
> URL: https://issues.jboss.org/browse/ISPN-1239
> Project: Infinispan
> Issue Type: Feature Request
> Components: Distributed Cache
> Affects Versions: 5.0.0.FINAL
> Reporter: Manik Surtani
> Assignee: Dan Berindei
> Priority: Critical
> Labels: clean_shutdown, rehashing
>
> Currently, killing any node will result in a rehash. A mechanism for clean shutdown should also be supported, so that a rehash is *not* triggered. Useful when the entire cluster is being intentionally brought down.
> Need to think about how we do this; perhaps a LEAVE message that will prevent nodes triggering a rehash when a subsequent view change is detected. This could be done programmatically via a {{clean}} parameter to {{stop()}}, but we should explore alternatives here.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months
[JBoss JIRA] (ISPN-1808) FileCacheStore performance issues
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-1808?page=com.atlassian.jira.plugin.... ]
Mircea Markus resolved ISPN-1808.
---------------------------------
Resolution: Duplicate Issue
handled as part of ISPN-2806
> FileCacheStore performance issues
> ---------------------------------
>
> Key: ISPN-1808
> URL: https://issues.jboss.org/browse/ISPN-1808
> Project: Infinispan
> Issue Type: Enhancement
> Components: Loaders and Stores, Marshalling
> Affects Versions: 5.1.0.CR4, 5.1.0.FINAL
> Reporter: Johann Burkard
> Assignee: Dan Berindei
> Labels: marshalling, passivation, performance, serialization
> Fix For: 6.0.0.Final
>
>
> While InfiniSpan is very fast in-memory, once passivation is turned on, things get slow for me.
> On my i5-2400 with a Crucial C300 SSD, it takes about 11 ms to passivate a 2964 B value. This comes down to a write speed of 250 to 300 KB/s. The disk can write up to 180 MB/s so it's not the bottleneck.
> Clearly, passivation should be faster than that.
> Profiling with YourKit shows most of the hot spots are centered around {{FileCacheStore}}, the JBoss Marshalling library and various bucket and {{ImmortalCacheEntry}} methods. Locking also seems to play a role. Here's a screenshot:
> !http://i.imgur.com/LzkPw.png!
> To make profiling easier for you, I've taken my test case and turned it into a small Maven project. Simply running {{mvn install}} should run the test, ready for profiling.
> Of course, it could also be that my configuration is suboptimal. However, in my experiments, many configurations were unusable (hitting the file handle limit), which is not a good thing.
> The project is available at http://johannburkard.de/resources/Johann/infinispan-performance.zip
> I've also found one or two other things I think are more costly than they would need to be
> In {{FileCacheStore}}
> {code}
> byte[] buffer = new byte[streamBufferSize];
> ...
> fileInStream = new FileInputStream(file);
> ...
> bis = new BufferedInputStream(fileInStream);
> ...
> bytesRead = bis.read(buffer, 0, streamBufferSize);
> {code}
> wrapping the {{FileInputStream}} in a {{BufferedInputStream}} is unnecessary because you already have a buffer in {{byte[] buffer}}. I think I have seen this before in InfiniSpan, so you might want to check for occurrences of {{BufferedInputStream}} or {{BufferedOutputStream}}.
> Another one
> {code}
> if (bytes.length == 0) {
> // Short circuit
> if (f.exists()) f.delete();
> return;
> }
> {code}
> {{f.exists()}} is essentially a syscall. Just calling {{f.delete()}} is enough.
> {code}
> if (!root.exists()) {
> if (!root.mkdirs()) {
> log.problemsCreatingDirectory(root);
> }
> }
> if (!root.exists()) {
> throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
> }
> {code}
> This could also be shortened to
> {code}
> if (!root.mkdirs()) {
> throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months
[JBoss JIRA] (ISPN-1808) FileCacheStore performance issues
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-1808?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-1808:
--------------------------------
Fix Version/s: (was: 6.0.0.Final)
> FileCacheStore performance issues
> ---------------------------------
>
> Key: ISPN-1808
> URL: https://issues.jboss.org/browse/ISPN-1808
> Project: Infinispan
> Issue Type: Enhancement
> Components: Loaders and Stores, Marshalling
> Affects Versions: 5.1.0.CR4, 5.1.0.FINAL
> Reporter: Johann Burkard
> Assignee: Dan Berindei
> Labels: marshalling, passivation, performance, serialization
>
> While InfiniSpan is very fast in-memory, once passivation is turned on, things get slow for me.
> On my i5-2400 with a Crucial C300 SSD, it takes about 11 ms to passivate a 2964 B value. This comes down to a write speed of 250 to 300 KB/s. The disk can write up to 180 MB/s so it's not the bottleneck.
> Clearly, passivation should be faster than that.
> Profiling with YourKit shows most of the hot spots are centered around {{FileCacheStore}}, the JBoss Marshalling library and various bucket and {{ImmortalCacheEntry}} methods. Locking also seems to play a role. Here's a screenshot:
> !http://i.imgur.com/LzkPw.png!
> To make profiling easier for you, I've taken my test case and turned it into a small Maven project. Simply running {{mvn install}} should run the test, ready for profiling.
> Of course, it could also be that my configuration is suboptimal. However, in my experiments, many configurations were unusable (hitting the file handle limit), which is not a good thing.
> The project is available at http://johannburkard.de/resources/Johann/infinispan-performance.zip
> I've also found one or two other things I think are more costly than they would need to be
> In {{FileCacheStore}}
> {code}
> byte[] buffer = new byte[streamBufferSize];
> ...
> fileInStream = new FileInputStream(file);
> ...
> bis = new BufferedInputStream(fileInStream);
> ...
> bytesRead = bis.read(buffer, 0, streamBufferSize);
> {code}
> wrapping the {{FileInputStream}} in a {{BufferedInputStream}} is unnecessary because you already have a buffer in {{byte[] buffer}}. I think I have seen this before in InfiniSpan, so you might want to check for occurrences of {{BufferedInputStream}} or {{BufferedOutputStream}}.
> Another one
> {code}
> if (bytes.length == 0) {
> // Short circuit
> if (f.exists()) f.delete();
> return;
> }
> {code}
> {{f.exists()}} is essentially a syscall. Just calling {{f.delete()}} is enough.
> {code}
> if (!root.exists()) {
> if (!root.mkdirs()) {
> log.problemsCreatingDirectory(root);
> }
> }
> if (!root.exists()) {
> throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
> }
> {code}
> This could also be shortened to
> {code}
> if (!root.mkdirs()) {
> throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months
[JBoss JIRA] (ISPN-3037) Failing test: MixedModeTest.testMixedMode:72 NullPointer
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-3037?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-3037:
--------------------------------
Issue Type: Bug (was: Task)
> Failing test: MixedModeTest.testMixedMode:72 NullPointer
> --------------------------------------------------------
>
> Key: ISPN-3037
> URL: https://issues.jboss.org/browse/ISPN-3037
> Project: Infinispan
> Issue Type: Bug
> Reporter: Sanne Grinovero
> Assignee: Mircea Markus
> Fix For: 6.0.0.Alpha1
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~ ENVIRONMENT INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~
> jgroups.bind_addr = 127.0.0.1
> java.runtime.version = 1.6.0_43-b01
> java.runtime.name =Java(TM) SE Runtime Environment
> java.vm.version = 20.14-b01
> java.vm.vendor = Sun Microsystems Inc.
> os.name = Linux
> os.version = 3.8.8-202.fc18.x86_64
> sun.arch.data.model = 64
> sun.cpu.endian = little
> protocol.stack = null
> infinispan.test.jgroups.protocol = tcp
> infinispan.unsafe.allow_jdk8_chm = true
> java.net.preferIPv4Stack = true
> java.net.preferIPv6Stack = null
> log4.configuration = null
> MAVEN_OPTS = null
> ~~~~~~~~~~~~~~~~~~~~~~~~~ ENVIRONMENT INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~
> Tests run: 2911, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 212.448 sec <<< FAILURE!
> testMixedMode(org.infinispan.api.MixedModeTest) Time elapsed: 0.03 sec <<< FAILURE!
> java.lang.NullPointerException
> at org.infinispan.api.MixedModeTest.testMixedMode(MixedModeTest.java:72)
> 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:597)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
> at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> Results :
> Failed tests:
> MixedModeTest.testMixedMode:72 NullPointer
> Tests run: 2911, Failures: 1, Errors: 0, Skipped: 0
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months