[JBoss JIRA] (ISPN-8008) Add Fault-tolerance to write-behind stores
by Pedro Zapata (Jira)
[ https://issues.jboss.org/browse/ISPN-8008?page=com.atlassian.jira.plugin.... ]
Pedro Zapata updated ISPN-8008:
-------------------------------
Issue Type: Feature Request (was: Enhancement)
> Add Fault-tolerance to write-behind stores
> ------------------------------------------
>
> Key: ISPN-8008
> URL: https://issues.jboss.org/browse/ISPN-8008
> Project: Infinispan
> Issue Type: Feature Request
> Components: Loaders and Stores
> Reporter: Ryan Emerson
> Assignee: Ryan Emerson
> Priority: Major
> Fix For: 9.3.0.CR1
>
>
> Currently when a store is configured to be write-behind, three attempts are made to write the queued modifications to the store. If all three attempts fail, then this error is simply logged and the modifications are never written to the store.
> We should allow users to configure a write-behind store so that: In the event that a write-behind fails, further operations on the cache are not allowed and the modifications which failed to write to the store are queued indefinitely. Once the underlying store becomes available, the queued modifications should be written and then the cache should become available.
> To determine whether a store has become available again, the AsyncCacheWriter will have to poll the store's availability. Currently the CacheWriter interface does not allow such behaviour, therefore there are two options:
> * Attempt a write and catch an exception if the store is not currently available
> * Add a method to return the current status of a store to the CacheWriter interface
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (ISPN-3099) Util.loadClass() still swallows NoClassDefFoundError
by Pedro Zapata (Jira)
[ https://issues.jboss.org/browse/ISPN-3099?page=com.atlassian.jira.plugin.... ]
Pedro Zapata updated ISPN-3099:
-------------------------------
Issue Type: Enhancement (was: Feature Request)
> Util.loadClass() still swallows NoClassDefFoundError
> ----------------------------------------------------
>
> Key: ISPN-3099
> URL: https://issues.jboss.org/browse/ISPN-3099
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 5.2.5.Final
> Environment: Windows, JBoss EAP 5
> Reporter: Bert Jacobs
> Priority: Major
> Fix For: 9.0.0.CR4, 8.2.7.Final
>
> Attachments: report-infinispan-logging.patch
>
>
> My log contains stack traces like the following:
> {code}
> Caused by: org.infinispan.CacheConfigurationException: Unable to instantiate class org.infinispan.loaders.bdbje.BdbjeCacheStore
> at org.infinispan.util.Util.loadClass(Util.java:101)
> at org.infinispan.util.Util.getInstance(Util.java:222)
> at org.infinispan.configuration.parsing.Parser51.parseLoader(Parser51.java:440)
> at org.infinispan.configuration.parsing.Parser51.parseLoaders(Parser51.java:418)
> at org.infinispan.configuration.parsing.Parser51.parseCache(Parser51.java:189)
> at org.infinispan.configuration.parsing.Parser51.parseNamedCache(Parser51.java:148)
> at org.infinispan.configuration.parsing.Parser51.readElement(Parser51.java:115)
> at org.infinispan.configuration.parsing.Parser51.readElement(Parser51.java:84)
> at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110)
> at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69)
> at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:77)
> ... 73 more
> Caused by: java.lang.ClassNotFoundException: org.infinispan.loaders.bdbje.BdbjeCacheStore
> at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:249)
> at org.infinispan.util.Util.loadClassStrict(Util.java:138)
> at org.infinispan.util.Util.loadClass(Util.java:99)
> ... 83 more
> {code}
> However, this ClassNotFoundException comes from the System classloader, but the code still swallows the following Error:
> {code}
> Caused by: org.infinispan.CacheConfigurationException: Unable to instantiate class org.infinispan.loaders.bdbje.BdbjeCacheStore
> at org.infinispan.util.Util.loadClass(Util.java:101)
> [SNIP - see above]
> at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:77)
> ... 73 more
> Caused by: java.lang.ClassNotFoundException: org.infinispan.loaders.bdbje.BdbjeCacheStore
> at org.infinispan.util.Util.loadClassStrict(Util.java:150)
> at org.infinispan.util.Util.loadClass(Util.java:99)
> ... 83 more
> Caused by: java.lang.NoClassDefFoundError: com/sleepycat/collections/TransactionWorker
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:249)
> at org.infinispan.util.Util.loadClassStrict(Util.java:138)
> ... 84 more
> Caused by: java.lang.ClassNotFoundException: com.sleepycat.collections.TransactionWorker from BaseClassLoader@3598d24f{vfsfile:/D:/App/Java/jboss/brms-standalone-5.3.0/jboss-as/server/lettergen-ds-default/deploy/modeshape-datastore.ear/}
> at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:477)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> ... 87 more
> {code}
> It is this error which is actually important: the BdbjeCacheStore class was found but it cannot be loaded because the sleepycat jar is not on the classpath. It is impossible to see this without changing the code.
> The commits for ISPN-2559 did not properly fix this problem. The Error should be logged in all cases because the ClassNotFoundException will also happen in almost every case: the last search ClassLoader is the System ClassLoader which will likely never have the searched class.
> Once again: please log all NoClassDefFoundErrors (suppressing Errors is bad in any case) or at least handle them *before* handling any ClassNotFoundExceptions. The attached patch does exactly that.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (ISPN-6026) Segment-aware shared cache stores
by Pedro Zapata (Jira)
[ https://issues.jboss.org/browse/ISPN-6026?page=com.atlassian.jira.plugin.... ]
Pedro Zapata updated ISPN-6026:
-------------------------------
Issue Type: Feature Request (was: Enhancement)
> Segment-aware shared cache stores
> ---------------------------------
>
> Key: ISPN-6026
> URL: https://issues.jboss.org/browse/ISPN-6026
> Project: Infinispan
> Issue Type: Feature Request
> Components: Loaders and Stores
> Reporter: Tristan Tarrant
> Assignee: William Burns
> Priority: Major
> Fix For: 9.4.0.CR3, 9.4.0.Final
>
>
> Shared cache stores (e.g. JDBC) should be segment-aware so that they only load the keys they own.
> Possible implementation: add a segment id column, so that the store can SELECT * FROM table WHERE segment_id = segment
> Need to think about how to reconstruct segment ids.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (ISPN-9209) Implement RemoteCache statistics
by Pedro Zapata (Jira)
[ https://issues.jboss.org/browse/ISPN-9209?page=com.atlassian.jira.plugin.... ]
Pedro Zapata updated ISPN-9209:
-------------------------------
Issue Type: Feature Request (was: Enhancement)
> Implement RemoteCache statistics
> --------------------------------
>
> Key: ISPN-9209
> URL: https://issues.jboss.org/browse/ISPN-9209
> Project: Infinispan
> Issue Type: Feature Request
> Components: Hot Rod
> Reporter: Tristan Tarrant
> Assignee: Tristan Tarrant
> Priority: Major
> Fix For: 9.4.0.CR3
>
>
> The Hot Rod client does not expose any local statistics (RemoteCacheManager.getStatistics() returns the server-side stats).
> We should have the following per-cache stats:
> - remote hits and hit avg time
> - remote misses and miss avg time
> - remote removes and remove avg time
> - near cache hits and avg time
> - near cache miss and avg time
> - near cache size
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (ISPN-9572) Configuration parser support for multiple cache-containers
by Tristan Tarrant (Jira)
Tristan Tarrant created ISPN-9572:
-------------------------------------
Summary: Configuration parser support for multiple cache-containers
Key: ISPN-9572
URL: https://issues.jboss.org/browse/ISPN-9572
Project: Infinispan
Issue Type: Enhancement
Components: Configuration
Reporter: Tristan Tarrant
Assignee: Tristan Tarrant
Fix For: 10.0.0.Alpha1
The embedded configuration parser should allow parsing multiple <cache-container> elements, each one identified by a unique name.
All cache-containers should share the same thread pools and transports.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (ISPN-9559) Server <modules> configuration with a single entry can break classloading
by Gustavo Fernandes (Jira)
[ https://issues.jboss.org/browse/ISPN-9559?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-9559:
------------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
Integrated in master, thanks
> Server <modules> configuration with a single entry can break classloading
> -------------------------------------------------------------------------
>
> Key: ISPN-9559
> URL: https://issues.jboss.org/browse/ISPN-9559
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Embedded Querying, Server
> Affects Versions: 9.2.0.Final
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Priority: Major
> Fix For: 9.4.0.Final
>
>
> There's a bug in CacheContainerConfigurationBuilder introduced by changes for ISPN-7714. This happens only if we have a _single_ module entry specified in the <modules> element of the cache container config and nothing in the 'module' attribute. In that case the module is used as if it was specified in the 'module' attribute. The classloader of the specified module is used as the global classloader of the cache container and this is almost always wrong. We should instead have an AggregatedClassloader of the classloaders of the user specified module/modules + the infinispan subsystem classloader (if no module attribute is present). If a 'module' attribute was specified then we should let that module be the designated classloader and do not use infinispan subsystem classloader as backup.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months