Hello! I don't see how we can force users to implement Comparable for BinaryObject keys, since BinaryObject implementation is not provided by users but by us.
I think that we, however, could force it for composite non-BinaryObject keys. Regards, -- Ilya Kasnacheev пт, 21 февр. 2020 г. в 00:21, Denis Magda <dma...@apache.org>: > Hi Ilya, > > We can oblige users to implement Comparable if they use BinaryObject keys. > Ignite can print out a warning if BinaryObject keys passed to putAll > methods don't do that. > > I also wonder how a similar task was solved for Ignite INSERTs. Our engine > should use BinaryObjects for compound primary keys and insert them at > patches. That implementation can suggest us some hints. > > - > Denis > > > On Thu, Feb 20, 2020 at 6:53 AM Ilya Kasnacheev <ilya.kasnach...@gmail.com > > > wrote: > > > Hello! > > > > Since we have merged https://issues.apache.org/jira/browse/IGNITE-6804 > we > > have to face an embarrassing fact that BinaryObject is not Comparable, > > i.e., when you do cache.withKeepBinary().putAll(), there are no obvious > > ways to not get a deadlock (or at least warning) here. > > > > One can use LinkedHashMap, but they will have to sort BinaryObject's on > > their side, which is not trivial. > > > > So my proposal is to make BinaryObjectImpl and KeyCacheObject (?) > > Comparable, by their binary representation. We can't add this constraint > to > > BinaryObject since it is a public interface (can we), but we can do that > > for the implementation types. What do you think? > > > > Regards, > > -- > > Ilya Kasnacheev > > >