Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Valentin Kulichenko
I think hash code can be calculated during serialization, while we write bytes. Obviously, there is no reason to calculate it each time hashCode() is called on the same binary object. -Val On Fri, Jan 27, 2017 at 10:59 AM, Dmitriy Setrakyan wrote: > On Fri, Jan 27, 2017 at 9:56 AM, Vladimir Oze

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Dmitriy Setrakyan
On Fri, Jan 27, 2017 at 9:56 AM, Vladimir Ozerov wrote: > Because it breaks equals/hashCode contract and cannot work with DML (we use > ugly hack as a workaround now). > Got it. Perhaps we can calculate hashCode only over the first 10 bytes or so, for performance reasons. > > 27 янв. 2017 г. 2

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Vladimir Ozerov
No, we didn't do that because it could break existing user code. Not a problem for AI 2.0. On Fri, Jan 27, 2017 at 9:50 PM, Denis Magda wrote: > Sounds reasonable to me. Actually, I thought that > BinaryArrayIdentityResolver was already enabled by default since 1.8. > > — > Denis > > > On Jan 27

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Denis Magda
Sounds reasonable to me. Actually, I thought that BinaryArrayIdentityResolver was already enabled by default since 1.8. — Denis > On Jan 27, 2017, at 2:37 AM, Vladimir Ozerov wrote: > > Folks, > > Historically we have fundamental flaw in how we deal with hashCode/equals > for BinaryObjects: >

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Vladimir Ozerov
Because it breaks equals/hashCode contract and cannot work with DML (we use ugly hack as a workaround now). 27 янв. 2017 г. 20:33 пользователь "Dmitriy Setrakyan" < dsetrak...@apache.org> написал: > Why shouldn't we use Object.hashCode() by default, even if the equals check > is done by comparing

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Dmitriy Setrakyan
Why shouldn't we use Object.hashCode() by default, even if the equals check is done by comparing byte arrays? Wouldn't it be faster? On Fri, Jan 27, 2017 at 4:38 AM, Pavel Tupitsyn wrote: > Makes sense to me. > > Ticket for reference: https://issues.apache.org/jira/browse/IGNITE-4558 > > On Fri,

Re: Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Pavel Tupitsyn
Makes sense to me. Ticket for reference: https://issues.apache.org/jira/browse/IGNITE-4558 On Fri, Jan 27, 2017 at 1:37 PM, Vladimir Ozerov wrote: > Folks, > > Historically we have fundamental flaw in how we deal with hashCode/equals > for BinaryObjects: > 1) hashCode() is taken from original d

Binary object hash code resolution in Apache Ignite 2.0

2017-01-27 Thread Vladimir Ozerov
Folks, Historically we have fundamental flaw in how we deal with hashCode/equals for BinaryObjects: 1) hashCode() is taken from original deserialized object. 2) But equals() is performed through binary array comparison. We recently introduced BinaryIdentityResolver [1] as a part of DML feature, b