[JBoss JIRA] (ISPN-5131) Deploy custom cache store to Infinispan Server
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-5131?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-5131:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1186857|https://bugzilla.redhat.com/show_bug.cgi?id=1186857] from MODIFIED to ON_QA
> Deploy custom cache store to Infinispan Server
> ----------------------------------------------
>
> Key: ISPN-5131
> URL: https://issues.jboss.org/browse/ISPN-5131
> Project: Infinispan
> Issue Type: Feature Request
> Components: Loaders and Stores, Server
> Reporter: Tristan Tarrant
> Assignee: Sebastian Łaskawiec
> Fix For: 7.2.0.Final
>
>
> h2. Overview
> Support the deployment and configuration of a custom cache store.
> h2. Client Perspective
> In order to create a deployable Cache Store the client will have to implement {{AdvancedLoadWriteStoreFactory}} (which will contain factory methods for creating {{AdvancedLoadWriteStore}}). Next, the factory will have to be annotated with {{@NamedFactory}} and placed into a jar together with proper entry of {{META-INF/services/org.infinispan.persistence.AdvancedLoadWriteStoreFactory}}. The last activity is to deploy given jar into Hotrod server.
> h2. Implementation overview
> The implementation is based on Deployable Filters and Converters.
> Currently all writers and loaders are instantiated in {{PersistenceManagerImpl#createLoadersAndWriters}}. This implementation will be modified to use {{CacheStoreFactoryRegistry}}, which will contain a list of {{CacheStoreFactories}}. One of the factories will be added by default - the local one (which will the same mechanism as we do now - {{Util.getInstance(classAnnotation)}}. Other {{CacheStoreFactories}} will be added after deployment scanning.
> h2. Implementation doubts and questions:
> * Should we expose a factory for {{AdvancedLoadWriteStore}} or should we include also {{ExternalStore}} (or even separate factory for {{CacheLoader}} and {{CacheWriter}}?
> ** YES, we should expose all of them.
> * How to ensure that deployment scanning has finished before creating instantiating {{AdvancedLoadWriteStore}}?
> ** Using {{org.infinispan.server.endpoint.subsystem.EndpointSubsystemAdd}}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 6 months
[JBoss JIRA] (ISPN-5304) WildFly module "/org/infinispan/client/hotrod/jdg-6.4" is different if installed with library or HR-client
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-5304?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-5304:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1205568|https://bugzilla.redhat.com/show_bug.cgi?id=1205568] from MODIFIED to ON_QA
> WildFly module "/org/infinispan/client/hotrod/jdg-6.4" is different if installed with library or HR-client
> ----------------------------------------------------------------------------------------------------------
>
> Key: ISPN-5304
> URL: https://issues.jboss.org/browse/ISPN-5304
> Project: Infinispan
> Issue Type: Feature Request
> Affects Versions: 7.2.0.Alpha1, 7.1.1.Final
> Environment: Infinispan as WildFly module
> Reporter: Wolf-Dieter Fink
> Assignee: Adrian Nistor
> Fix For: 7.2.0.Beta2, 7.2.0.Final, 7.1.2.Final
>
>
> If Infinispan is used inside WildFly applications there are two WF modules for Infinispan.
> One for Library mode
> One for HotRod remote client mode
> Both modules contain
> modules/org/infinispan/client/hotrod/jdg-6.4/infinispan-client-hotrod-6.2.0.Final-redhat-4.jar
> modules/org/infinispan/client/hotrod/jdg-6.4/module.xml
> BUT
> the module.xml is different:
> < <module name="org.infinispan" slot="jdg-6.4"/>
> ---
> > <module name="org.infinispan.commons" slot="jdg-6.4"/>
> > <module name="org.infinispan.protostream" slot="jdg-6.4"/>
> > <module name="org.infinispan.query.dsl" slot="jdg-6.4"/>
> > <module name="org.infinispan.query.remote.client" slot="jdg-6.4"/>
> This mean it is not possible to use both modules if there are applications with library mode and others with HR remote client mode.
> Also it is odd because it depends on the installation order what dependencies are installed.
> It should be possible to install both modules and use it at the same time from different applicaitons.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 6 months
[JBoss JIRA] (ISPN-5324) Create extended RemoteCacheManager for testing purposes
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-5324?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-5324:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1205828|https://bugzilla.redhat.com/show_bug.cgi?id=1205828] from MODIFIED to ON_QA
> Create extended RemoteCacheManager for testing purposes
> -------------------------------------------------------
>
> Key: ISPN-5324
> URL: https://issues.jboss.org/browse/ISPN-5324
> Project: Infinispan
> Issue Type: Feature Request
> Components: Test Suite - Core
> Reporter: Martin Gencur
> Assignee: Martin Gencur
> Fix For: 7.2.0.Beta2
>
>
> The extended RemoteCacheManager should expose details such as the following:
> * transportFactory
> The implementation should be internal and NOT part of public API.
> This way we can get rid of reflection in tests for HotRod client and these tests can be reused for C++ and C# HotRod clients. Any tests that use reflection are currently unusable for those implementations.
> The ultimate goal is to extend the test suite for C++ and C# clients.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 6 months
[JBoss JIRA] (ISPN-5174) Transaction cannot be recommitted after ownership changes
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-5174?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-5174:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1207082|https://bugzilla.redhat.com/show_bug.cgi?id=1207082] from MODIFIED to ON_QA
> Transaction cannot be recommitted after ownership changes
> ---------------------------------------------------------
>
> Key: ISPN-5174
> URL: https://issues.jboss.org/browse/ISPN-5174
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 7.1.0.CR2, 7.1.1.Final
> Reporter: Radim Vansa
> Assignee: Dan Berindei
> Priority: Critical
> Fix For: 7.2.0.Beta2, 7.2.0.Final
>
>
> Once transaction is completed, it cannot commit again. If it should commit more keys since it has become an owner of some new keys modified in this transaction, it just ignores the further commit.
> There is a race with state transfer which can bring an old value (with StateResponseCommand sent before it is commited) but the value is not set by the ongoing transaction either.
> This results with stale value stored on one node.
> In my case, The problematic part is transaction <edg-perf01-62141>:15066 (consisting of 10 modifications) which got prepared and committed on edg-perf04 in topology 25. Before the originator finishes, topology changes and 04 requests ongoing transactions:
> {code}
> 11:06:11,369 TRACE [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (transport-thread-17) Replication task sending StateRequestCommand{cache=testCache, origin=edg-perf04-35097, type=GET_TRANSACTIONS, topologyId=28, segments=[275, 1, 278, 9, 282, 286, 17, 259, 25, 267, 171, 169, 33, 306, 175, 173, 310, 172, 314, 41, 167, 165, 318, 187, 290, 49, 185, 191, 294, 189, 179, 298, 57, 177, 183, 302, 181, 343, 205, 201, 338, 203, 336, 351, 197, 349, 199, 347, 193, 345, 195, 326, 85, 87, 322, 93, 332, 95, 330, 89, 91, 103, 101, 99, 506, 97, 105, 357, 359, 353, 355, 361]} to single recipient edg-perf01-62141 with response mode GET_ALL
> 11:06:11,495 DEBUG [org.infinispan.statetransfer.StateConsumerImpl] (transport-thread-17) Applying 6 transactions for cache testCache transferred from node edg-perf01-62141
> {code}
> However I don't see how these are applied, since PrepareCommand is not created again - from the code I see only that backup locks are added. Not sure if the transaction is registered at all, since it was already completed on this node (but at that time it did not own key_00000000000002EB).
> After originator stores the entry, it sends one more CommitCommand with topology 28:
> {code}
> 11:06:11,619 TRACE [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (DefaultStressor-2) Replication task sending CommitCommand {gtx=GlobalTransaction:<edg-perf01-62141>:15066:local, cacheName='testCache', topologyId=28} to addresses [edg-perf03-20530, edg-perf04-35097] with response mode GET_ALL
> {code}
> 04 receives several CommitCommands (both from originator and forwards), but all of them are ignored as the transaction is completed.
> I don't see the logs where state transfer is assembled, but it's probably before the entry is stored on originator as the state transfer contains the old entry:
> {code}
> 11:06:13,449 TRACE [org.infinispan.statetransfer.StateConsumerImpl] (remote-thread-91) Received chunk with keys [key_000000000000065B, key_00000000000006BE, key_FFFFFFFFFFFFE62F, key_0000000000001F42, key_000000000000027B, key_000000000000159D, key_00000000000002EB, key_00000000000002BB] for segment 343 of cache testCache from node edg-perf01-62141
> 11:06:13,454 TRACE [org.infinispan.container.DefaultDataContainer] (remote-thread-91) Store ImmortalCacheEntry{key=key_00000000000002EB, value=[2 #7: 366, 544, 576, 804, 1061, 1181, 1290, ]} in container
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 6 months
[JBoss JIRA] (ISPN-4971) CDI uses default EmbeddedCacheManager producer from infinispan-cdi.jar instead of custom one
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-4971?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-4971:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1163040|https://bugzilla.redhat.com/show_bug.cgi?id=1163040] from MODIFIED to ON_QA
> CDI uses default EmbeddedCacheManager producer from infinispan-cdi.jar instead of custom one
> --------------------------------------------------------------------------------------------
>
> Key: ISPN-4971
> URL: https://issues.jboss.org/browse/ISPN-4971
> Project: Infinispan
> Issue Type: Bug
> Components: CDI Integration
> Affects Versions: 7.0.0.CR1, 7.0.0.CR2, 7.0.0.Final
> Reporter: Vitalii Chepeliuk
> Assignee: Sebastian Łaskawiec
>
> Custom producer has allowDuplicateDomains set to true look following code
> {code}
> public class EmbeddedCacheManagerProducer {
> /**
> * Produces the default embedded cache manager.
> *
> * @param providedDefaultEmbeddedCacheManager the provided default embedded cache manager.
> * @param defaultConfiguration the default configuration produced by the {@link EmbeddedCacheManagerProducer}.
> * @return the default embedded cache manager used by the application.
> */
> @Produces
> @ApplicationScoped
> public EmbeddedCacheManager getDefaultEmbeddedCacheManager(@OverrideDefault Instance<EmbeddedCacheManager> providedDefaultEmbeddedCacheManager, Configuration defaultConfiguration) {
> GlobalConfiguration globalConfiguration = new GlobalConfigurationBuilder().globalJmxStatistics().allowDuplicateDomains(true).build();
> ConfigurationBuilder builder = new ConfigurationBuilder();
> builder.read(defaultConfiguration);
> return new DefaultCacheManager(globalConfiguration, builder.build());
> }
> /**
> * Stops the default embedded cache manager when the corresponding instance is released.
> *
> * @param defaultEmbeddedCacheManager the default embedded cache manager.
> */
> private void stopCacheManager(@Disposes EmbeddedCacheManager defaultEmbeddedCacheManager) {
> defaultEmbeddedCacheManager.stop();
> }
> }
> {code}
> And default ones from infinispan-cdi.jar is
> {code}
> public class DefaultEmbeddedCacheManagerProducer {
> private static final Log log = LogFactory.getLog(DefaultEmbeddedCacheManagerProducer.class, Log.class);
> /**
> * Produces the default embedded cache manager.
> *
> * @param providedDefaultEmbeddedCacheManager the provided default embedded cache manager.
> * @param defaultConfiguration the default configuration produced by the {@link DefaultEmbeddedCacheConfigurationProducer}.
> * @return the default embedded cache manager used by the application.
> */
> @Produces
> @ApplicationScoped
> @DefaultBean(EmbeddedCacheManager.class)
> public EmbeddedCacheManager getDefaultEmbeddedCacheManager(@OverrideDefault Instance<EmbeddedCacheManager> providedDefaultEmbeddedCacheManager, Configuration defaultConfiguration) {
> if (!providedDefaultEmbeddedCacheManager.isUnsatisfied()) {
> log.tracef("Default embedded cache manager overridden by '%s'", providedDefaultEmbeddedCacheManager);
> return providedDefaultEmbeddedCacheManager.get();
> }
> return new DefaultCacheManager(defaultConfiguration);
> }
> /**
> * Stops the default embedded cache manager when the corresponding instance is released.
> *
> * @param defaultEmbeddedCacheManager the default embedded cache manager.
> */
> private void stopCacheManager(@Disposes EmbeddedCacheManager defaultEmbeddedCacheManager) {
> defaultEmbeddedCacheManager.stop();
> }
> }
> {code}
> When tests are deployed to APP server then following ERROR occurs
> 10:19:58,494 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> 10:19:58,526 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> 10:19:58,598 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> What means that out custom producer is sometimes not used and does not override default produced EmbeddedCacheManager
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 6 months