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

Manik Surtani manik at jboss.org
Fri Sep 16 07:55:37 EDT 2011


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






More information about the infinispan-dev mailing list