incubator-directmemory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Olivier Lamy <>
Subject Re: New version of protostuff with more efficient serialization is available
Date Fri, 20 Apr 2012 07:52:45 GMT
Version upgraded in poms.

2012/4/19 Roman Levenstein <>:
> Hi,
> I'm afraid that at the moment I'm not able to do it, because I'm
> rather busy with some other projects at work. And I do not use
> DirectMemory yet ;-(, but just plan to do so in the future. But I
> follow the development of this project with a big interest.
> As for the required changes, I think they can be rather trivial. There
> are some unit tests that show how to use the new IdStrategy feature:
> So, basically one needs to register a mapping from a class to its
> numeric id. Depending on the strategy, you can assign the numeric id
> yourself (ExplicitIdStrategy) or let protostuff do it for you
> (IncrementalIdStrategy). Once this is done, no further changes are
> required.
> See also this page for some info at
> (in the
> Performance Guidelines section)
> -Roman
> On Thu, Apr 19, 2012 at 11:00 AM, Olivier Lamy <> wrote:
>> Hello,
>> Nice and thanks for the tip.
>> Would you like contribute a patch ?
>> 2012/4/19 Roman Levenstein:
>>> Hi,
>>> I just wanted to mention on this mailing list, that there is a new
>>> version of the Protostuff that supports a more efficient serialization
>>> (see!topic/protostuff/MeTR9J_ClSM)
>>> If you make use of IdStrategies (see more info at
>>>, you can
>>> get a much smaller serialized representation and it is also much
>>> faster to produce.
>>>   -Dprotostuff.runtime.id_strategy_factory=com.dyuproject.protostuff.runtime.IncrementalIdStrategy$Factory
>>>       By default (if property is not present), the DefaultIdStrategy
>>> is used, which means a polymorphic pojo is identified by serializing
>>> its type as a string (FQCN). If you set the above property, int ids
>>> are generated on the fly (thread-safe/atomic) and are mapped to your
>>> polymorphic pojos. The end result is faster ser/deser and the
>>> serialized size is smaller (around 1/3-1/4 the size of the default
>>> strategy)
>>>       You can also reserve the first few ids (via
>>> IncrementalIdStrategy.Registry) for your core pojos (remember that ids
>>> 1-15 are serialized as 1-byte together with the protobuf tag), as well
>>> as set the max size for the ArrayList which holds the ids.
>>> I think DirectMemory can greatly benefit from this feature, because
>>> now you can keep more objects in the same amount of memory and you get
>>> much faster serialization/deserialization.
>>> Best Regards,
>>>  Roman
>>> P.S. If it is not against Apache policies, would it be possible to
>>> have a Google Groups for the direct-memory mailing lists, so that they
>>> can be used as a different web-based front-end? It could be much more
>>> convenient for many people I guess.
>> Not possible. That's against ASF policies.

Olivier Lamy
Talend: |

View raw message