[infinispan-dev] Request for feedback on cache store support in AS7 Infinispan subsystem

Pete Muir pmuir at redhat.com
Fri Sep 16 11:51:17 EDT 2011


I've raised this as a global issue across JBoss projects/products with the relevant groups internally at JBoss, as I believe that we will hit this problem elsewhere.

I think a mapping document is a good first step. I'll raise this with Misha who is providing docs support for EDG.

On 16 Sep 2011, at 07:55, Manik Surtani wrote:

> Looks good, but one concern I have is that this config schema uses different terms from what Infinispan uses and can lead to confusion.  Pete, Tristan and I were talking about converging EAP/EDG schemas for Infinispan with Infinispan's upstream schemas at some point, but until then, perhaps a document mapping the equivalents could be helpful for users trying to configure stuff.
> 
> 
> On 15 Sep 2011, at 16:34, Paul Ferraro wrote:
> 
>> Hi all,
>> 
>> In AS 7.0, only the those cache store implementations packaged in
>> infinispan-core were usable by default.  While the Infinispan subsystem
>> schema allowed users to use any cache store implementation (via <store
>> class="..."/>), they need to manually add the relevant jars to the
>> org.infinispan module, and update the module.xml file accordingly so
>> that the subsystem's module classloader is aware of these cache store
>> classes.
>> 
>> To simplify the use of other common cache store implementations, I'm in
>> the process of working on the following jira, which aims to include the
>> jdbc, remote, and cloud cache store jars in the org.infinispan module by
>> default:
>> https://issues.jboss.org/browse/AS7-1713
>> 
>> As well as including the relevant jars, we would also like to simplify
>> their definition (like we did for <file-store/>, such that users don't
>> need to specify class names, provide as many sensible defaults as
>> possible, and take care of any required service dependencies.
>> 
>> I've created a draft of what I thought could be workable schema for the
>> remote and jdbc cache stores and would like some feedback.
>> 
>> The amended Infinispan subsystem schema can be found here:
>> https://github.com/pferraro/jboss-as/blob/master/build/src/main/resources/docs/schema/jboss-as-infinispan_1_0.xsd
>> 
>> For the jdbc cache stores, which come in 3 flavors, I've consolidated
>> them into a single configuration element <jdbc-store/>, where the
>> variant is implied the defined tables.  After providing default values
>> for all the required fields, we arrive at the following minimal
>> configuration:
>> e.g.
>> <jdbc-store datasource="java:jboss/jdbc/somedatabase"/>
>> 
>> I started with the assumption that the database resource will always
>> come from an AS-managed DataSource.
>> 
>> To use a string-based jdbc store, we specify the type of table to use:
>> e.g.
>> 
>> <jdbc-store datasource="java:jboss/jdbc/somedatabase">
>> <entry-table/>
>> </jdbc-store>
>> 
>> Likewise, if we want to use a binary jdbc store:
>> e.g.
>> <jdbc-store datasource="java:jboss/jdbc/somedatabase">
>> <bucket-table/>
>> </jdbc-store>
>> 
>> Using both <entry-table/> and <bucket-table/> (or neither) indicates the
>> use of a mixed jdbc store.
>> 
>> The tables themselves are fully customizable (shown with their default
>> values):
>> e.g.
>> <jdbc-store datasource="java:jboss/jdbc/somedatabase">
>> <bucket-table prefix="ispn_bucket" batch-size="100" fetch-size="100">
>> <id-column name="id" type="VARCHAR"/>
>> <data-column name="datum" type="BINARY"/>
>> <timestamp-column name="version" type="BIGINT"/>
>> </bucket-table>
>> <entry-table prefix="ispn_entry" batch-size="100" fetch-size="100">
>> <id-column name="id" type="VARCHAR"/>
>> <data-column name="datum" type="BINARY"/>
>> <timestamp-column name="version" type="BIGINT"/>
>> </entry-table>
>> </jdbc-store>
>> 
>> 
>> The schema for the remote cache store is far simpler.  You can specify a
>> specific remote cache name, server list, and hot rod client properties
>> are directly enumerated:
>> e.g.
>> <remote-store cache="some-named-cache" servers="127.0.0.1:11311">
>> <property name="infinispan.client.hotrod.request_balancing_strategy">...</property>
>> </remote-store>
>> 
>> If the cache attribute is omitted, we assume the default cache is to be
>> used.
>> 
>> Unfortunately, there doesn't seem to be a way to integrate the thread
>> pools used by RemoteCache/RemoteCacheManager with the AS7 threading
>> subsystem.  In order to do this, RemoteCacheStoreConfig would need
>> methods for providing ExecutorFactory implementations, similar to the
>> way GlobalConfiguration works.
>> 
>> I haven't started on the cloud-based store yet, as it's kind of a
>> dependency nightmare.
>> 
>> Thoughts?
>> 
>> Paul
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> --
> Manik Surtani
> manik at jboss.org
> twitter.com/maniksurtani
> 
> Lead, Infinispan
> http://www.infinispan.org
> 
> 
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev




More information about the infinispan-dev mailing list