Bruce J Schuchardt created GEODE-8963:
-----------------------------------------
Summary: separate client/server compatibility from server/server
version compatibility
Key: GEODE-8963
URL: https://issues.apache.org/jira/browse/GEODE-8963
Project: Geode
Issue Type: Bug
Components: serialization
Reporter: Bruce J Schuchardt
A client's version is used for deserializing data received from the client and
for serializing data sent to the client. It is also used to locate the map of
Commands used to process client requests. Every time we cut a new release we
bump this version in KnownVersions and create a new map of Commands, even
though client/server communications protocols rarely change.
We should have each KnownVersion hold a client/server compatibility number
that is used to identify clients rather than the KnownVersion's ordinal.
For instance,
{code:java}
public static final KnownVersion GEODE_1_15_0 =
new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, (byte)
0,
/*server/server version*/GEODE_1_15_0_ORDINAL,
/*client/server version*/GEODE_1_15_0_ORDINAL);
public static final KnownVersion GEODE_1_16_0 =
new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, (byte)
0,
/*server/server version*/GEODE_1_16_0_ORDINAL,
/*client/server version*/GEODE_1_15_0_ORDINAL);
public static final KnownVersion GEODE_1_17_0 =
new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, (byte)
0,
/*server/server version*/GEODE_1_17_0_ORDINAL,
/*client/server version*/GEODE_1_15_0_ORDINAL);
{code}
In the above KnownVersions the client/server serialization is known to have not
changed since v1.15.0 and so there is no need to use a newer KnownVersion for
clients.
Client handshake code will need to be changed to use the client/server ordinal
when identifying clients and servers.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)