ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladimir Ozerov <voze...@gridgain.com>
Subject Re: Handling collections in BinaryMarshaller
Date Wed, 09 Dec 2015 08:35:45 GMT
I am going to drop support of the following classes. All these classes are
currently written in a special unified way. After my changes they will be
written *as any other usual object*.

1) Sorted collections:

   - TreeSet
   - TreeMap
   - ConcurrentSkipListSet

Reason: currently we do not write Comparator which might lead to exceptions
on the other side.

2) Special collections:

   - ConcurrentLinkedQueue
   - ConcurrentHashMap
   - PropertiesMap

Reason: too specific use cases.

3) Map.Entry
Reason: this is an interface with billion implemenations, we cannot
unmarshal it correctly on the other side without full serialization of
concrete class.

On Wed, Dec 9, 2015 at 10:57 AM, Vladimir Ozerov <vozerov@gridgain.com>
wrote:

> Dmitriy,
> Correct. This is what I meant.
>
> On Tue, Dec 8, 2015 at 10:26 PM, Dmitriy Setrakyan <dsetrakyan@apache.org>
> wrote:
>
>> Vladimir,
>>
>> I believe the default collections in Java and .NET should be supported out
>> of the box. Moreover, if we know the collection type, e.g. HashMap, we can
>> always provide a more efficient way of serializing it ourselves, in the
>> Binary marshaller.
>>
>> Is this something you had in mind, or were you proposing something
>> different.
>>
>> D.
>>
>> On Tue, Dec 8, 2015 at 6:29 AM, Vladimir Ozerov <vozerov@gridgain.com>
>> wrote:
>>
>> > Alex,
>> >
>> > What interface do you mean? If user has collection field in class and
>> > explicitly call BinaryWriter.writeCollection(), we can leave current
>> > interoperability support - it is not a problem.
>> > As per your second point - user could pass collections e.g. as argument
>> to
>> > Java task started from .NET. This is where we will loose
>> interoperabiltiy
>> > and will force user to create some wrappers. But these are very specific
>> > use cases.
>> >
>> > BTW, proposed solution is almost exactly how we work with collections in
>> > .NET.
>> >
>> > On Tue, Dec 8, 2015 at 4:57 PM, Alexey Goncharuk <
>> > alexey.goncharuk@gmail.com
>> > > wrote:
>> >
>> > > I like the idea, however it has obvious downsides. First, if a user
>> class
>> > > contains a collection, we force user to implement additional
>> interface,
>> > > even if the collection is a simple ArrayList. Second, I do not see how
>> > this
>> > > plain collection can be the value for the cache - user will always
>> need
>> > to
>> > > write a wrapper/containing class around it.
>> > >
>> > > I think we should provide minimum support for basic types - HashMap,
>> > > LinkedHashMap, ArrayList and treat other classes the way Vladimir
>> > > described.
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message