I think they did that because the datatypes in the Version class are too
small. I'm not sure why bytes and shorts were chosen.

The version constants are defined as bytes:

private static final *byte* GEODE_1_11_0_ORDINAL = 107;

While the ordinal is defined as a short:

private final *short* ordinal;

I'm assuming this was done because Version ends up on the wire. Does it go
into every message or just handshake/join messages? I suppose we can't
change these datatypes to integers until Geode 2.0 because they would end
up being a breaking change.

Maybe we should scan through all serialized datatypes for bytes/shorts that
are going to run out...

On Fri, Aug 23, 2019 at 9:02 AM Bruce Schuchardt <bschucha...@pivotal.io>
wrote:

> We've been incrementing the serialization version by 5 for each x.x.0
> release but I see that we went from 105 in 1.10.0 to 107 in develop for
> 1.11.0.  That gives us only one opportunity to make a serialization
> change if we need to release patches for 1.10.  I don't think that's
> safe & we need to bump the ordinal for 1.11.0 to 110.
>
>

Reply via email to