[infinispan-dev] cache loader/preload
Pedro Ruivo
pedro at infinispan.org
Mon Aug 19 06:02:13 EDT 2013
On 08/16/2013 07:51 PM, Ray Tsang wrote:
>
>
> On Fri, Aug 16, 2013 at 5:05 AM, Galder Zamarreño <galder at redhat.com
> <mailto:galder at redhat.com>> wrote:
>
>
> On Aug 15, 2013, at 4:25 AM, Ray Tsang <saturnism at gmail.com
> <mailto:saturnism at gmail.com>> wrote:
>
> > Btw how do we deal with preloading in a cluster?
>
> Each node preloads locally only.
>
>
> How is this done? Is it through loadAllKeys first, and then determining
> which keys are local?
> Or do you mean it preloads locally from a non-shared cache store? What
> if the cache store is shared?
the behaviour is the same for non-shared/shared caches. Each node loads
all the data from the cache store and puts it in their local container
(without any replication/distribution neither any communication with
other nodes).
>
>
> > Eg how do we prevent every node from preloading the same data?
>
> Preloaded data is not replicated/distributed to other nodes, in
> order to speed up process. For replicated caches, each node loads
> its own stuff (from local or shared). For distributed caches, I
> don't think we're intelligent enough to only load data that belongs
> to a particular node (I think there's some jiras on this topic…)
>
>
> For replicated cache, when it loads the data, does it put to the local
> cache container only? (i.e., avoid unnecessarily replicating to other
> nodes of course).
yes
Cheers,
Pedro
>
>
> Cheers,
>
> >
> > On Aug 14, 2013, at 16:09, Mircea Markus <mmarkus at redhat.com
> <mailto:mmarkus at redhat.com>> wrote:
> >
> >>
> >> On 14 Aug 2013, at 20:53, Sanne Grinovero <sanne at infinispan.org
> <mailto:sanne at infinispan.org>> wrote:
> >>
> >>> On 14 August 2013 17:59, Mircea Markus <mmarkus at redhat.com
> <mailto:mmarkus at redhat.com>> wrote:
> >>>>
> >>>> On 14 Aug 2013, at 15:26, Sanne Grinovero
> <sanne at infinispan.org <mailto:sanne at infinispan.org>> wrote:
> >>>>
> >>>>> On 14 August 2013 11:15, Mircea Markus <mmarkus at redhat.com
> <mailto:mmarkus at redhat.com>> wrote:
> >>>>>> Currently the "preload" attribute is configured at *loaders*
> level and the first cache loader in the chain is used for preloading.
> >>>>>> A better place for preload might be the individual loader
> element: would indicate clearly which loader is used for preloading
> and also consistent with the fetchPeristentState which is again
> defined on a per loader basis.
> >>>>>>
> >>>>>> How does it sound?
> >>>>>
> >>>>> Very confusing actually :-)
> >>>>> Are you going to prevent me to enable "preload" on multiple Cache
> >>>>> Loaders elements?
> >>>>
> >>>> I'm not going to take anything from you, this is something
> you're not allowed to do ATM :-)
> >>>
> >>> That's exactly my point. I'm not allowed to do it ATM, but if you
> >>> change the position of this attribute to *each* loader it will look
> >>> like I could enable/disable it differently on a per-instance.
> >>
> >> Gotcha, I'll either add a check to allow specifying preload on a
> single store, or (if time allows) I'll implement the multiple
> preload feature.
> >>
> >>>
> >>>>
> >>>>> And what if I'm actually storing entries in
> >>>>> different CacheStore instanced based on some discriminator,
> like the
> >>>>> value (key) type?
> >>>>>
> >>>>> To make a practical example, the Lucene Directory CacheLoader
> only
> >>>>> loads some specific types, and only from named indexes which
> match a
> >>>>> configured name. You could want multiple instances using
> different
> >>>>> configurations, so that for each index name stored in the
> same cache
> >>>>> you actually store them in different cachestores.
> >>>>>
> >>>>> Similar situation, with the JPA CacheStore you might want to use
> >>>>> multiple independent instances, one per mapped type. Not
> necessarily
> >>>>> needed (one could improve the CacheStore implementation as
> well) but
> >>>>> it gives lot of flexibility, like connecting to different RDBMs
> >>>>> instances or with different credentials/schemas, etc...
> >>>>
> >>>> Indeed user might want this in the future. Moving "preload" at
> "loader" level would only facilitate that.
> >>>
> >>> Right. I'm making those examples to highlight the benefit of moving
> >>> the attribute to each cachestore, as you proposed, but this
> only makes
> >>> sense if you actually allow the option to be applied
> differently for
> >>> each instance.
> >>
> >> Cheers,
> >> --
> >> Mircea Markus
> >> Infinispan lead (www.infinispan.org <http://www.infinispan.org>)
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> infinispan-dev mailing list
> >> infinispan-dev at lists.jboss.org
> <mailto:infinispan-dev at lists.jboss.org>
> >> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> > _______________________________________________
> > infinispan-dev mailing list
> > infinispan-dev at lists.jboss.org
> <mailto:infinispan-dev at lists.jboss.org>
> > https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
>
> --
> Galder Zamarreño
> galder at redhat.com <mailto:galder at redhat.com>
> twitter.com/galderz <http://twitter.com/galderz>
>
> Project Lead, Escalante
> http://escalante.io
>
> Engineer, Infinispan
> http://infinispan.org
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org <mailto: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