I do like Bucket. It more 'free' than Database that people do
associate to
much with SQL and relational (who remember that a database CAN be non
relational ?) and than Cache which seems to retrictive in my point of view.
Regards,
Niko
2011/5/12 Emmanuel Bernard <emmanuel(a)hibernate.org>
>
> Let me summarize,
> GridMap is the equivalent of Cache, right?
> I agree that Map is not the right representation, plus
> Map<Key,Map<String,Object>> is ugly. So +1 for a dedicated object.
>
> I think we could use:
> - Cache
> - Database
> - Bucket
>
> Note a fan of GridMap as it won't make sense for the post key/value
>
> On 11 mai 2011, at 17:24, Sanne Grinovero wrote:
>
> > 2011/5/11 Alex Snaps <alex.snaps(a)gmail.com>:
> >> Unintentionally left the ML out.
> >
> > oops, sorry didn't realize that. for everyone else: please find my
> > previous reply below;
> >
> >> Sanne, wrt jsr107 fair enough. I then feel that we should not leverage
> >> Map and use a custom type that only declare what's needed (and avoids
the
> >> return value, when not required). I think that'd make it simpler, wdyt ?
How
> >> should we name that thing ? My first attempt was GridMap...
> >
> > So you need something like a Cache, but
> > 1- avoid the org.infinispan package
> > 2- provide non-return value methods (Infinispan does this setting
> > flags in the context to avoid an explosion of methods - does EHCache
> > have something similar?)
> > ?
> >
> > GridMap sounds fine, but again it's just a temporary solution until
> > non-grids are supported as well.
> > Other opinions ?
> >
> > Sanne
> >
> >> On Wednesday 11 May 2011 at 16:50, Sanne Grinovero wrote:
> >>> 2011/5/11 Alex Snaps <alex.snaps(a)gmail.com>:
> >>>> On Wednesday 11 May 2011 at 15:38, Sanne Grinovero wrote:
> >>>> Hi Alex,
> >>>>> thank you I'm having a look and will comment more on github
> >>>>> directly.
> >>>> I'll look into your comments and will adapt. thanks!
> >>>>
> >>>>>
> >>>>> A first comment: I see that a big part of your patch is about
> >>>>> replaceing "Cache" with "ConcurrentMap" and
renaming variables to be
> >>>>> consistent with this change; at the same time in the JSR-107
forum
> >>>>> it
> >>>>> seems that everybody is agreeing on *not* extending Map, while
> >>>>> there's
> >>>>> going to be something similar to a Map, this is going to be
called
> >>>>> "Cache", so I'd stick with our current name.
> >>>>> I understand this is a bit in flux now and nothing is cast in
stone,
> >>>>> but at the moment it would be better to keep your patch smaller
and
> >>>>> avoiding these conversions, or at least keeping these
refactorings
> >>>>> as
> >>>>> a separate commit.
> >>>>
> >>>> I think that makes sense, I actually started with neither Map nor
> >>>> ConcurrentMap, but some other random Grib interface.
> >>>> I then saw the wiki page mentioning Map... I certainly can review
> >>>> this, but it does look like the plan is to have this tailored to
jsr-107, I
> >>>> didn't know that. I'll stick to ConcurrentMap return values,
but will not
> >>>> rename further.
> >>>
> >>> Sorry I didn't mean to state that we're going to support
jsr-107, we
> >>> should discuss that but it's unlikely in practice as we want to
> >>> support more alternatives than key/value stores.
> >>> I'm only mentioning it as the abstraction you're introducing now
will
> >>> make OGM support only Infinispan and EHCache, and they happen to have
> >>> this common API which gives names the building blocks as
"Cache" and
> >>> "CacheManager". So for the time being there's no need to
change all
> >>> variable names. It will definitely be more complex when other storage
> >>> engines will be added; it might be an option to use JSR-107 or JSR-347
> >>> at least for the key/value implementors but I don't think either is
> >>> going to cover all of noSQL.
> >>> Also even if we wanted to finish only Infinispan and EHCache, I
don't
> >>> think the ConcurrentMap API would be good enough, we likely need a
> >>> more intrusive definition of "dialect" here.
> >>>
> >>>
> >>>>> The plan is to build the first version of queries on top of
> >>>>> Hibernate
> >>>>> Search, so basically that's already an abstraction on top of
any
> >>>>> "Grid
> >>>>> implementation" and it should work fine with EHCache as
well; Lucene
> >>>>> won't be able to solve all use cases though so for some
cases we'll
> >>>>> need to tap into special functionalities offered by the grid
> >>>>> provider,
> >>>>> but that's going to be a second step. Suggestions welcome of
course!
> >>>> I have seen that Hibernate Search approach, I wondered whether a
real
> >>>> query bridge to the grid wouldn't make more sense. But I totally
agree that
> >>>> that approach makes total sense as a first step.
> >>>>
> >>>>>
> >>>>> As far as the "skip locking" pattern, that's
currently the way to
> >>>>> build a sequence generator on top of Infinispan, in case of
EHCache
> >>>>> you might want to suggest a totally different approach, I'd
expect
> >>>>> that this should be an implementation detail at the dialect
level,
> >>>>> not
> >>>>> necessarily common code.
> >>>> Alright, that makes sense as well... I'll look into abstracting
that
> >>>> nicely behind the Dialect then.
> >>>>
> >>>>>
> >>>>> Regards,
> >>>>> Sanne
> >>>>>
> >>>>>
> >>>>> 2011/5/11 Alex Snaps <alex.snaps(a)gmail.com>:
> >>>>>> Hey,
> >>>>>> I've taken some time and, in an attempt to port
Hibernate OGM to
> >>>>>> use Ehcache instead of Infinispan, abstracted it from
Infinispan.
> >>>>>> As the doc on that task states, I've made all calls use
> >>>>>> ConcurrentMap (rather than Map actually). I had a little
trouble
> >>>>>> understanding the "Skip locking proposed by Sanne"
in
> >>>>>> OgmTableGenerator.doWorkInCurrentTransactionIfAny, so that
this does a
> >>>>>> simple Map.get now (that might have been a specialization
for a Dialect, but
> >>>>>> couldn't understand what it was all about).
> >>>>>> And finally introduced a new hibernate.grid.manager prop to
> >>>>>> instantiate the proper provider...
> >>>>>>
> >>>>>> The changes are available here:
> >>>>>>
> >>>>>>
https://github.com/alexsnaps/hibernate-ogm/commit/d0fcbffed4c4bcc2aa5208c...
> >>>>>>
> >>>>>> Hope that can be made useful… I also wanted to start looking
into
> >>>>>> queries next. But I'll send another mail on that later.
> >>>>>> Thanks,
> >>>>>> Alex
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Alex Snaps <alex.snaps(a)gmail.com>
> >>>>>> Senior Software Engineer - Terracotta
> >>>>>>
http://twitter.com/alexsnaps
> >>>>>>
http://www.linkedin.com/in/alexsnaps
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> hibernate-dev mailing list
> >>>>>> hibernate-dev(a)lists.jboss.org
> >>>>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>>
> >>
> >>
> >
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev