You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by Keith Turner <ke...@deenlo.com> on 2018/06/01 12:36:58 UTC

Re: Java (eventually) dropping Serialization

On Wed, May 30, 2018 at 11:59 AM, Josh Elser <jo...@gmail.com> wrote:
> On 5/30/18 9:08 AM, Keith Turner wrote:
>>
>> On Wed, May 30, 2018 at 12:16 AM, Christopher <ct...@apache.org> wrote:
>>>
>>> I thought this was interesting:
>>>
>>> https://www.infoworld.com/article/3275924/java/oracle-plans-to-dump-risky-java-serialization.html
>>>
>>> If the long-term plan is to remove serialization from Java classes (in
>>> favor of a lightweight, possibly pluggable, "Records" serialization
>>> framework), we should begin thinking about how we use serialization in
>>> Accumulo's code today. At the very least, we should try to avoid any
>>> reliance on it in any future persistence of objects in Accumulo. If we
>>> see
>>> an opportunity to remove it in our current code anywhere, it might be
>>> worth
>>> spending the time to do follow through with such a change.
>>>
>>> Of course, this is probably going to be a *very* long time before it is
>>> actually dropped from Java, but it's not going to hurt to start thinking
>>> about it now.
>>>
>>> (Accumulo uses Java serialization for storing FaTE transaction
>>> information,
>>> and perhaps elsewhere.)
>>
>>
>> We currently do not support FaTE transactions across minor versions.
>> The upgrade code checks for any outstanding FaTE transactions.  So
>> this makes it easier to upgrade on a minor version.  I would like to
>> see FaTE use a human readable format like Json because it would make
>> debugging easier.
>
>
> I'd strongly suggest against using JSON as you it forces the application to
> know how to handle drift in "schema". It would be nice to avoid the need to
> flush the outstanding fate txns on upgrade.


I would also like to support outstanding fate txns on upgrade, but I
am not sure how to test it.  How do we test each step of a fate op
upgrades properly?  I am still trying to figure this one out.

>
> If you just want a JSON-ish way to look at the data, I'd suggest moving over
> to protobuf3 and check out the support they have around JSON.
>
> https://developers.google.com/protocol-buffers/docs/proto3#json