17:18:35 #startmeeting “streaming design” 17:18:35 Meeting started Tue Oct 28 17:18:35 2014 UTC. The chair is moizer. Information about MeetBot at http://ci.openstack.org/meetbot.html. 17:18:35 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:18:35 The meeting name has been set to '_streaming_design_' 17:21:09 #info all protocol buffer messages that send across a normalized node should now be migrated to a java serializable which implements custom readObject/writeObject 17:30:32 #info Saving snapshot in the replicated log uses up too much memory 17:30:54 #info maybe we need to create a snapshot when we need to Install the snapshot 17:31:46 #info when shard is not persistent - there is more chance of install snapshot being required 17:44:00 #agreed We will capture shot when we need to install it 17:47:43 #info we want to keep serialization of instance identifiers on WriteData/MergeData with the new streaming 17:48:48 #info create a bug for instance identifier serialization 17:50:33 #action create a bug for snapshotting/install snapshot to use the new streaming classes 17:52:24 #info Parallel Task 1 - Install snapshot changes with ReadDataReply 17:53:09 #info Parallel Task 2 - WriteData/MergeData - change streamwriter to write instance identifiers 17:53:42 #info Parallel Task 3 - Add more unit tests for the stream writer 17:54:55 #info Task 4 - Optimize the stream writer to reuse the builder - definitely the leafnode/leafsetentry builders can be reused 17:56:28 #info Task 5 - ReplicatedLogEntry also needs to use a java serializable 17:57:08 #info We need to take care of versioning in the java serializable 18:03:59 #action evaluate the work required to support backward compatibility 18:05:43 #info by backward compatibility I mean each message should be backward compatibility 18:09:03 #info What should we use as the version? 18:09:23 #info A static field in the clustering-messages could be enough 18:10:21 #info 1. NormalizedNode , instead of bytestring , will be stored as part of the snapshot. 18:10:35 #info 2. Installsnapshot will use the NormalizedStreamWrite 18:10:46 #info 3. All messages will have a version number. An actor only accepts messages with version >= its version. 18:10:57 #info 4. Its possible for a leader to have an higher version than the follower. In a 3 member cluster, when the first member is upgraded, its not possible for the leader > follower. But when the second member is upraded, it can happen that the one of the upgraded ones become the leader. 18:11:05 #info 5. Backward compatibility is supported. If a V1.1 node gets V1.0 message , it should honor it. 18:11:13 #info 6. If a V1.0 node gets V1.1 message, it would ignore the message. The V1.0 replica, if follower, will be behind the Leader, till upgraded. The V1.0 replica , if Leader, will not honor messages from upgraded V1.1 follower. 18:11:27 #info 7. Heartbeats should be counted , even if messages are not honored. 18:11:38 #info 8. VoteRequest should also comply (version >= its version) rule, there by ensuring that the leader is elected from the majority with same version 18:11:53 #info These are rules which Kamal proposes 18:15:33 #info When we get a message with an older version that can be handled the reply needs to be of the same version as the request 18:23:37 #info all fields in our java serializable should be transient 18:26:57 #info we may need to create message classes to cleanly migrate from v1 -> v2 messages 18:33:22 #info Send message here asking about backward compatibility here -> https://lists.opendaylight.org/mailman/listinfo/opendaylight-users 18:36:14 #info Message to users 18:37:34 #info We are changing the serialization of clustering messages to improve performance for persistence and communication. 18:38:50 As a result the new clustering messages will be incompatible with base Helium and thus will require users to stop and upgrade all cluster nodes together 18:39:25 #info Persisted data will also not be recovered due to this incompatibility 18:39:36 #info Is this acceptable? 18:41:42 #info Title : MD-SAL Clustering for Helium 18:41:54 #info MD-SAL Clustering for Helium R1 18:42:16 #info Final title : MD-SAL Clustering changes for Helium R1 18:42:31 #info Response requested by COB Friday 18:42:56 #action Moiz to send the message 18:43:30 #info We will proceed with the assumption that backward compatibility is not to be supported 19:19:18 #endmeeting