[JBoss JIRA] (ISPN-8912) The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
by Andreas Pabst (JIRA)
[ https://issues.jboss.org/browse/ISPN-8912?page=com.atlassian.jira.plugin.... ]
Andreas Pabst commented on ISPN-8912:
-------------------------------------
I may have misunderstood what the maxNodeSize configuration is for. From reading the docs I assumed that it was necessary to increase the node size if the serialized length of the cache values may exceed the default node size of 4K.
Are there any limits to the size of the cache values stored in a soft-index file store?
> The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ISPN-8912
> URL: https://issues.jboss.org/browse/ISPN-8912
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Affects Versions: 9.1.6.Final
> Reporter: Andreas Pabst
> Assignee: Radim Vansa
>
> The following unit test just puts lots of entries into the cache and restarts the cache repeatedly.
> It succeeds if maxNodeSize is set to anything up to 32777, but runs into a deadlock from 32778 upwards. If going even higher it doesn't run into a deadlock anymore, but throws an IllegalArgumentException instead.
> As a workaround one can delete the index. But the problem resurfaces after the next restart.
> {code:java}
> import java.util.concurrent.TimeUnit;
> import java.util.stream.IntStream;
> import org.infinispan.Cache;
> import org.infinispan.configuration.cache.Configuration;
> import org.infinispan.configuration.cache.ConfigurationBuilder;
> import org.infinispan.manager.DefaultCacheManager;
> import org.infinispan.manager.EmbeddedCacheManager;
> import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.rules.Timeout;
> public class SifsLargeNodeTest {
> private EmbeddedCacheManager cacheManager;
> @Rule
> public Timeout timeout = new Timeout(15, TimeUnit.SECONDS);
> private static Configuration createConfig(String location, int maxNodeSizeInBytes) {
> return new ConfigurationBuilder()
> .persistence().addStore(SoftIndexFileStoreConfigurationBuilder.class)
> .dataLocation(location + "/data").indexLocation(location + "/index")
> .maxNodeSize(maxNodeSizeInBytes)
> .preload(false).purgeOnStartup(false)
> .build();
> }
> @Before
> public void setUp() {
> cacheManager = new DefaultCacheManager();
> }
> @After
> public void tearDown() {
> cacheManager.stop();
> }
> @Test
> public void testLoad() {
> int maxNodeSizeInBytes = 32780; // Note: Anything up to 32777 works fine
> String cacheName = "sifslargenodetestcache";
> Configuration cfg = createConfig(cacheName, maxNodeSizeInBytes);
> int numberOfRuns = 10;
> int valuesToPutPerRun = 10000;
> for (int run = 0; run < numberOfRuns; run++) {
> System.out.println("RUN " + run);
> cacheManager.defineConfiguration(cacheName, cfg);
> Cache<Integer, String> testCacheBeforeReduction = cacheManager.getCache(cacheName);
> IntStream.range(run * valuesToPutPerRun, (run + 1) * valuesToPutPerRun)
> .forEach(i -> testCacheBeforeReduction.put(i, Integer.toString(i)));
> cacheManager.stop();
> cacheManager = new DefaultCacheManager();
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 2 months
[JBoss JIRA] (ISPN-8912) The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
by Radim Vansa (JIRA)
[ https://issues.jboss.org/browse/ISPN-8912?page=com.atlassian.jira.plugin.... ]
Radim Vansa commented on ISPN-8912:
-----------------------------------
The node size is limited to 32767 as its length is stored in 2 bytes (OK, we could make that 64k or maybe a bit more, but ByteBuffer does not have unsigned integers methods), so the actual bug is that this is not failing gracefully and that we don't document that (documentation mentions only the limitation for single key).
May I ask why are you increasing the node size? Have you found increasing performance with larger nodes? (what disk do you use?)
> The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ISPN-8912
> URL: https://issues.jboss.org/browse/ISPN-8912
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Affects Versions: 9.1.6.Final
> Reporter: Andreas Pabst
> Assignee: Radim Vansa
>
> The following unit test just puts lots of entries into the cache and restarts the cache repeatedly.
> It succeeds if maxNodeSize is set to anything up to 32777, but runs into a deadlock from 32778 upwards. If going even higher it doesn't run into a deadlock anymore, but throws an IllegalArgumentException instead.
> As a workaround one can delete the index. But the problem resurfaces after the next restart.
> {code:java}
> import java.util.concurrent.TimeUnit;
> import java.util.stream.IntStream;
> import org.infinispan.Cache;
> import org.infinispan.configuration.cache.Configuration;
> import org.infinispan.configuration.cache.ConfigurationBuilder;
> import org.infinispan.manager.DefaultCacheManager;
> import org.infinispan.manager.EmbeddedCacheManager;
> import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.rules.Timeout;
> public class SifsLargeNodeTest {
> private EmbeddedCacheManager cacheManager;
> @Rule
> public Timeout timeout = new Timeout(15, TimeUnit.SECONDS);
> private static Configuration createConfig(String location, int maxNodeSizeInBytes) {
> return new ConfigurationBuilder()
> .persistence().addStore(SoftIndexFileStoreConfigurationBuilder.class)
> .dataLocation(location + "/data").indexLocation(location + "/index")
> .maxNodeSize(maxNodeSizeInBytes)
> .preload(false).purgeOnStartup(false)
> .build();
> }
> @Before
> public void setUp() {
> cacheManager = new DefaultCacheManager();
> }
> @After
> public void tearDown() {
> cacheManager.stop();
> }
> @Test
> public void testLoad() {
> int maxNodeSizeInBytes = 32780; // Note: Anything up to 32777 works fine
> String cacheName = "sifslargenodetestcache";
> Configuration cfg = createConfig(cacheName, maxNodeSizeInBytes);
> int numberOfRuns = 10;
> int valuesToPutPerRun = 10000;
> for (int run = 0; run < numberOfRuns; run++) {
> System.out.println("RUN " + run);
> cacheManager.defineConfiguration(cacheName, cfg);
> Cache<Integer, String> testCacheBeforeReduction = cacheManager.getCache(cacheName);
> IntStream.range(run * valuesToPutPerRun, (run + 1) * valuesToPutPerRun)
> .forEach(i -> testCacheBeforeReduction.put(i, Integer.toString(i)));
> cacheManager.stop();
> cacheManager = new DefaultCacheManager();
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 2 months
[JBoss JIRA] (ISPN-8913) Provide sha1 checksums for Infinispan downloads
by Ryan Emerson (JIRA)
Ryan Emerson created ISPN-8913:
----------------------------------
Summary: Provide sha1 checksums for Infinispan downloads
Key: ISPN-8913
URL: https://issues.jboss.org/browse/ISPN-8913
Project: Infinispan
Issue Type: Enhancement
Components: Build
Affects Versions: 9.2.0.Final
Reporter: Ryan Emerson
Currently infinispan.org only provides users with download links for our various distribution zips, in the future we should provide these alongside their respective sha1 checksums. The website will need to be updated to include a means of displaying this information, as well as the web site release scripts to automatically populate said information.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 2 months
[JBoss JIRA] (ISPN-8912) The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-8912?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant reassigned ISPN-8912:
-------------------------------------
Assignee: Radim Vansa (was: Tristan Tarrant)
> The SoftIndexFileStore runs into a deadlock at startup if more than ~20000 values have been stored and max node size is > 32777 bytes
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ISPN-8912
> URL: https://issues.jboss.org/browse/ISPN-8912
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Affects Versions: 9.1.6.Final
> Reporter: Andreas Pabst
> Assignee: Radim Vansa
>
> The following unit test just puts lots of entries into the cache and restarts the cache repeatedly.
> It succeeds if maxNodeSize is set to anything up to 32777, but runs into a deadlock from 32778 upwards. If going even higher it doesn't run into a deadlock anymore, but throws an IllegalArgumentException instead.
> As a workaround one can delete the index. But the problem resurfaces after the next restart.
> {code:java}
> import java.util.concurrent.TimeUnit;
> import java.util.stream.IntStream;
> import org.infinispan.Cache;
> import org.infinispan.configuration.cache.Configuration;
> import org.infinispan.configuration.cache.ConfigurationBuilder;
> import org.infinispan.manager.DefaultCacheManager;
> import org.infinispan.manager.EmbeddedCacheManager;
> import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.rules.Timeout;
> public class SifsLargeNodeTest {
> private EmbeddedCacheManager cacheManager;
> @Rule
> public Timeout timeout = new Timeout(15, TimeUnit.SECONDS);
> private static Configuration createConfig(String location, int maxNodeSizeInBytes) {
> return new ConfigurationBuilder()
> .persistence().addStore(SoftIndexFileStoreConfigurationBuilder.class)
> .dataLocation(location + "/data").indexLocation(location + "/index")
> .maxNodeSize(maxNodeSizeInBytes)
> .preload(false).purgeOnStartup(false)
> .build();
> }
> @Before
> public void setUp() {
> cacheManager = new DefaultCacheManager();
> }
> @After
> public void tearDown() {
> cacheManager.stop();
> }
> @Test
> public void testLoad() {
> int maxNodeSizeInBytes = 32780; // Note: Anything up to 32777 works fine
> String cacheName = "sifslargenodetestcache";
> Configuration cfg = createConfig(cacheName, maxNodeSizeInBytes);
> int numberOfRuns = 10;
> int valuesToPutPerRun = 10000;
> for (int run = 0; run < numberOfRuns; run++) {
> System.out.println("RUN " + run);
> cacheManager.defineConfiguration(cacheName, cfg);
> Cache<Integer, String> testCacheBeforeReduction = cacheManager.getCache(cacheName);
> IntStream.range(run * valuesToPutPerRun, (run + 1) * valuesToPutPerRun)
> .forEach(i -> testCacheBeforeReduction.put(i, Integer.toString(i)));
> cacheManager.stop();
> cacheManager = new DefaultCacheManager();
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 2 months
[JBoss JIRA] (ISPN-8910) CompatModeClusteredCacheTest.testMerge test failure
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-8910?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes commented on ISPN-8910:
-----------------------------------------
Caused by commit da8b5987e6113a32e71f9d274a3167fa7ea03528
> CompatModeClusteredCacheTest.testMerge test failure
> ---------------------------------------------------
>
> Key: ISPN-8910
> URL: https://issues.jboss.org/browse/ISPN-8910
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Query
> Affects Versions: 9.2.0.Final
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> {noformat}
> Caused by: org.infinispan.util.UserRaisedFunctionalException: java.lang.ClassCastException: [B cannot be cast to org.infinispan.query.test.Person
> at org.infinispan.commands.functional.functions.MergeFunction.apply(MergeFunction.java:44)
> at org.infinispan.commands.functional.functions.MergeFunction.apply(MergeFunction.java:19)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.perform(ReadWriteKeyCommand.java:100)
> at org.infinispan.interceptors.impl.CallInterceptor.visitCommand(CallInterceptor.java:29)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:56)
> at org.infinispan.interceptors.distribution.BaseDistributionInterceptor.handleNonTxWriteCommand(BaseDistributionInterceptor.java:260)
> at org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitReadWriteKeyCommand(NonTxDistributionInterceptor.java:137)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:110)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:98)
> at org.infinispan.query.backend.QueryInterceptor.handleDataWriteCommand(QueryInterceptor.java:177)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 2 months