Re: Stable binary key representation

2017-04-19 Thread Denis Magda
t;>>>>>>>> >>>>>>>>>>>>>>> The discussion should've been started with that :) If >>> supporting >>>>>>>>>>>>> resolvers >>>>>>>>>>&

Re: Stable binary key representation

2017-04-19 Thread Alexey Goncharuk
gt;> Sergi > > >>>>>>>>>>> > > >>>>>>>>>>> 2017-04-07 9:19 GMT+03:00 Valentin Kulichenko < > > >>>>>>>>>>> valentin.kuliche...@gmail.com>: > > >>>>>>>>>>> > > >

Re: Stable binary key representation

2017-04-18 Thread Andrey Mashenkov
.kuliche...@gmail.com>: > >>>>>>>>>>> > >>>>>>>>>>>> The discussion should've been started with that :) If > supporting > >>>>>>>>>> resolvers > >>>>>>>>&

Re: Stable binary key representation

2017-04-18 Thread Denis Magda
>>>>>>>>>>>> definitely not worth it. >>>>>>>>>>>> >>>>>>>>>>>> -Val >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Apr 6, 2017 at

Re: Stable binary key representation

2017-04-11 Thread Denis Magda
dimir Ozerov < >>>>>>> voze...@gridgain.com >>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Dima, >>>>>>>>>>>

Re: Stable binary key representation

2017-04-11 Thread Dmitriy Setrakyan
>>>>>>>> > > >>>>>>>>>> Guys, > > >>>>>>>>>> > > >>>>>>>>>> Isn't the main issue here that we cannot use the Identity > > >>>>> Resolvers >

Re: Stable binary key representation

2017-04-11 Thread Igor Sapego
;>>> Isn't the main issue here that we cannot use the Identity > >>>>> Resolvers > >>>>>> in > >>>>>>>>>> BTrees in the 2.0 version? If yes, then we have to remove them > >>>> no > >>>

Re: Stable binary key representation

2017-04-10 Thread Denis Magda
;>>>>>> matter >>>>>>>>>> what. >>>>>>>>>> >>>>>>>>>> D. >>>>>>>>>> >>>>>>>>>> On Thu, Apr 6, 2017 at 1:23 PM, Sergi Vladykin <

Re: Stable binary key representation

2017-04-10 Thread Vladimir Ozerov
gt; Binary key representation is stable when we always have equal > >>>>>>> serialized > >>>>>>>>> bytes when the original keys are equal. > >>>>>>>>> > >>>>>>>>> Resolver allows you to

Re: Stable binary key representation

2017-04-10 Thread Denis Magda
>>>>>>>>> bytes when the original keys are equal. >>>>>>>>> >>>>>>>>> Resolver allows you to have some extra info in the Key and >> equal >>>>>> Keys >>>>>>>> will >>>>>

Re: Stable binary key representation

2017-04-09 Thread Vladimir Ozerov
> > >> > > part > > > >> > > > here is `a` and it the only fields used in Key equals() and > > > >> hashCode(). > > > >> > > > Still we may have the following layouts: > > > >> > > > > > > >> > &

Re: Stable binary key representation

2017-04-09 Thread Sergi Vladykin
> > > >> > > > 1. Ka -> Vbc > > >> > > > 2. Kab -> Vc > > >> > > > 3. Kabc -> Boolean.TRUE > > >> > > > > > >> > > > The only 1 is a correct layout, others are plain wrong variants > > (b

Re: Stable binary key representation

2017-04-09 Thread Denis Magda
.TRUE > >> > > > > >> > > > The only 1 is a correct layout, others are plain wrong variants > (but > >> > they > >> > > > are still possible with Resolvers) because everything that does > not > >> > make > >>

Re: Stable binary key representation

2017-04-09 Thread Sergi Vladykin
a correct layout, others are plain wrong variants (but >> > they >> > > > are still possible with Resolvers) because everything that does not >> > make >> > > > Key unique must be in Value. >> > > > >> > > > We want to clearly state that i

Re: Stable binary key representation

2017-04-06 Thread Sergi Vladykin
t; > > We want to clearly state that if you have something in Key, that is > not > > > > part of equals(), then the Key is invalid and that stuff must be in > > > Value. > > > > This allows us to rely on binary representation of a Key to be stable > >

Re: Stable binary key representation

2017-04-06 Thread Valentin Kulichenko
stable > and > > > have some more optimizations and code simplifications with respect to > > these > > > assumptions. > > > > > > Sergi > > > > > > 2017-04-06 14:24 GMT+03:00 Valentin Kulichenko < > > > valentin.kuliche...

Re: Stable binary key representation

2017-04-06 Thread Vladimir Ozerov
is invalid and that stuff must be in > Value. > > This allows us to rely on binary representation of a Key to be stable and > > have some more optimizations and code simplifications with respect to > these > > assumptions. > > > > Sergi > > > > 2017-04-0

Re: Stable binary key representation

2017-04-06 Thread Dmitriy Setrakyan
t; > > Even with my vast expirience I would never claim that I've seen > > "everything" :) > > > > What do you mean by stable binary key representation and how resolvers > make > > it unstable? > > > > -Val > > > > On Thu, Apr 6

Re: Stable binary key representation

2017-04-06 Thread Sergi Vladykin
I've seen > "everything" :) > > What do you mean by stable binary key representation and how resolvers make > it unstable? > > -Val > > On Thu, Apr 6, 2017 at 2:36 AM, Sergi Vladykin > wrote: > > > Val, > > > > I know that you have really vast

Re: Stable binary key representation

2017-04-06 Thread Valentin Kulichenko
Even with my vast expirience I would never claim that I've seen "everything" :) What do you mean by stable binary key representation and how resolvers make it unstable? -Val On Thu, Apr 6, 2017 at 2:36 AM, Sergi Vladykin wrote: > Val, > > I know that you have really v

Re: Stable binary key representation

2017-04-06 Thread Denis Magda
cross > multiple JVMs, it means that it was not designed for distributed caches a > priori. > > Also knowing in advance about stable binary key representation allows us to > apply additional optimizations, like comparing keys without detaching them > from offheap memory. > >

Re: Stable binary key representation

2017-04-06 Thread Sergi Vladykin
designed for distributed caches a priori. Also knowing in advance about stable binary key representation allows us to apply additional optimizations, like comparing keys without detaching them from offheap memory. We always will be able to add this stuff back if we see users really need it. Let&#

Re: Stable binary key representation

2017-04-06 Thread Valentin Kulichenko
Alex, To be honest, I don't understand the reasoning behind the removal. I think resolvers provide good flexibility for different corner cases and it's a good thing to have them. Note that they can be applied not only to cache keys, but to any binary objects. Hibernate issue is actually a good ex

Re: Stable binary key representation

2017-04-05 Thread Alexey Goncharuk
Denis, Can you suggest a use-case where identity resolver is needed (given that we agree that a key must contain only valuable fields)? 2017-04-05 22:08 GMT+03:00 Denis Magda : > Where do you want to remove the identity resolvers from? If it’s related > to the internals of Hibernate module then

Re: Stable binary key representation

2017-04-05 Thread Denis Magda
Where do you want to remove the identity resolvers from? If it’s related to the internals of Hibernate module then it’s fine but if you suggest removing identity resolvers public interfaces then it might be a haste decision. — Denis > On Apr 5, 2017, at 7:42 AM, Alexey Goncharuk > wrote: > >

Re: Stable binary key representation

2017-04-05 Thread Alexey Goncharuk
+1, I see no other reasons to keep it. 2017-04-05 13:59 GMT+03:00 Sergi Vladykin : > +1 > > Lets drop them. > > Sergi > > 2017-04-05 13:50 GMT+03:00 Dmitriy Govorukhin < > dmitriy.govoruk...@gmail.com> > : > > > Hi guys, i implemented proxy for IgniteCache in hibernate integration, > this > > pro

Re: Stable binary key representation

2017-04-05 Thread Sergi Vladykin
+1 Lets drop them. Sergi 2017-04-05 13:50 GMT+03:00 Dmitriy Govorukhin : > Hi guys, i implemented proxy for IgniteCache in hibernate integration, this > proxy transformate cacheKey to our key wrapper, leaves only required > field. I think we can remove identity resolve, it should not broke > i

Re: Stable binary key representation

2017-04-05 Thread Dmitriy Govorukhin
Hi guys, i implemented proxy for IgniteCache in hibernate integration, this proxy transformate cacheKey to our key wrapper, leaves only required field. I think we can remove identity resolve, it should not broke integration with hibernate. Any objections? On Wed, Mar 29, 2017 at 11:07 PM, Valentin

Re: Stable binary key representation

2017-03-29 Thread Valentin Kulichenko
I'm not saying there is no alternative solution. But let's implement it and prove that it works first, and remove resolvers only after that. -Val On Wed, Mar 29, 2017 at 12:18 PM, Sergi Vladykin wrote: > Guys, nothing is impossible if you know a bit about reflection in Java :) > > We had a look

Re: Stable binary key representation

2017-03-29 Thread Sergi Vladykin
Guys, nothing is impossible if you know a bit about reflection in Java :) We had a look at the CacheKey class and it is easily replaceable. Sergi 2017-03-29 21:49 GMT+03:00 Dmitriy Setrakyan : > On Wed, Mar 29, 2017 at 11:43 AM, Valentin Kulichenko < > valentin.kuliche...@gmail.com> wrote: >

Re: Stable binary key representation

2017-03-29 Thread Dmitriy Setrakyan
On Wed, Mar 29, 2017 at 11:43 AM, Valentin Kulichenko < valentin.kuliche...@gmail.com> wrote: > "Hibernate key" is the CacheKey class I was referring to. It's provided by > Hibernate, not by user and not by us. So I'm not sure it's possible to > replace it. > If it is impossible to replace or get

Re: Stable binary key representation

2017-03-29 Thread Valentin Kulichenko
"Hibernate key" is the CacheKey class I was referring to. It's provided by Hibernate, not by user and not by us. So I'm not sure it's possible to replace it. -Val On Wed, Mar 29, 2017 at 11:36 AM, Dmitriy Setrakyan wrote: > Alexey, > > Can you explain what is the "Hibernate key" and what is a "

Re: Stable binary key representation

2017-03-29 Thread Dmitriy Setrakyan
Alexey, Can you explain what is the "Hibernate key" and what is a "correct key class"? Are you suggesting that currently we don't require our users interested in Hibernate integration to provide a "correct key class"? D. On Wed, Mar 29, 2017 at 9:08 AM, Alexey Goncharuk < alexey.goncha...@gmail.

Re: Stable binary key representation

2017-03-29 Thread Valentin Kulichenko
Alex, How do you suggest to replace the CacheKey class? It's internal for Hibernate and I'm not sure it's possible. -Val On Wed, Mar 29, 2017 at 11:09 AM, Denis Magda wrote: > I’m not sure we can simply discontinue the identity resolvers that were > originally created for DML. *Vovan*, *Alex P

Re: Stable binary key representation

2017-03-29 Thread Denis Magda
I’m not sure we can simply discontinue the identity resolvers that were originally created for DML. *Vovan*, *Alex Paschenko*, please chime in and provide your thoughts. Don’t want us to make such decisions in haste. Alex G., in any case, assuming that the resolvers are still in 2.0 is there any

Re: Stable binary key representation

2017-03-29 Thread Sergi Vladykin
It looks like a good idea to drop identity resolvers for now and require stable binary representation for keys in 2.0. Later if it will be really needed we will be able to add them back. Sergi 2017-03-29 19:08 GMT+03:00 Alexey Goncharuk : > Guys, > > I stumbled across this ticket [1] and it seem

Stable binary key representation

2017-03-29 Thread Alexey Goncharuk
Guys, I stumbled across this ticket [1] and it seems to me that the whole approach of identity resolvers is error-prone. If a key contains some data that does not participate in equals() calculation, these fields may be as well moved to the value object. Even with binary objects, key mutation look