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)

Reply via email to