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

Prabhat Jha pjha at redhat.com
Fri Sep 16 14:29:10 EDT 2011


On a separate thread, Michal, Rado and I were discussing that alignment of schema should be a high priority item during upcoming f2F meeting. Some of problems that we have found has been result of Infinispan subsystem in AS7 not honoring some configuration. It will be good to see less of those. :-)

----- Original Message -----
| 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
| 
| 
| _______________________________________________
| 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