============================================ #opendaylight-clustering: “streaming design” ============================================ Meeting started by moizer at 17:18:35 UTC. The full logs are available at http://meetings.opendaylight.org/opendaylight-clustering/2014/_streaming_design_/opendaylight-clustering-_streaming_design_.2014-10-28-17.18.log.html . Meeting summary --------------- * all protocol buffer messages that send across a normalized node should now be migrated to a java serializable which implements custom readObject/writeObject (moizer, 17:21:09) * Saving snapshot in the replicated log uses up too much memory (moizer, 17:30:32) * maybe we need to create a snapshot when we need to Install the snapshot (moizer, 17:30:54) * when shard is not persistent - there is more chance of install snapshot being required (moizer, 17:31:46) * AGREED: We will capture shot when we need to install it (moizer, 17:44:00) * we want to keep serialization of instance identifiers on WriteData/MergeData with the new streaming (moizer, 17:47:43) * create a bug for instance identifier serialization (moizer, 17:48:48) * ACTION: create a bug for snapshotting/install snapshot to use the new streaming classes (moizer, 17:50:33) * Parallel Task 1 - Install snapshot changes with ReadDataReply (moizer, 17:52:24) * Parallel Task 2 - WriteData/MergeData - change streamwriter to write instance identifiers (moizer, 17:53:09) * Parallel Task 3 - Add more unit tests for the stream writer (moizer, 17:53:42) * Task 4 - Optimize the stream writer to reuse the builder - definitely the leafnode/leafsetentry builders can be reused (moizer, 17:54:55) * Task 5 - ReplicatedLogEntry also needs to use a java serializable (moizer, 17:56:28) * We need to take care of versioning in the java serializable (moizer, 17:57:08) * ACTION: evaluate the work required to support backward compatibility (moizer, 18:03:59) * by backward compatibility I mean each message should be backward compatibility (moizer, 18:05:43) * What should we use as the version? (moizer, 18:09:03) * A static field in the clustering-messages could be enough (moizer, 18:09:23) * 1. NormalizedNode , instead of bytestring , will be stored as part of the snapshot. (moizer, 18:10:21) * 2. Installsnapshot will use the NormalizedStreamWrite (moizer, 18:10:35) * 3. All messages will have a version number. An actor only accepts messages with version >= its version. (moizer, 18:10:46) * 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. (moizer, 18:10:57) * 5. Backward compatibility is supported. If a V1.1 node gets V1.0 message , it should honor it. (moizer, 18:11:05) * 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. (moizer, 18:11:13) * 7. Heartbeats should be counted , even if messages are not honored. (moizer, 18:11:27) * 8. VoteRequest should also comply (version >= its version) rule, there by ensuring that the leader is elected from the majority with same version (moizer, 18:11:38) * These are rules which Kamal proposes (moizer, 18:11:53) * 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 (moizer, 18:15:33) * all fields in our java serializable should be transient (moizer, 18:23:37) * we may need to create message classes to cleanly migrate from v1 -> v2 messages (moizer, 18:26:57) * Send message here asking about backward compatibility here -> https://lists.opendaylight.org/mailman/listinfo/opendaylight-users (moizer, 18:33:22) * Message to users (moizer, 18:36:14) * We are changing the serialization of clustering messages to improve performance for persistence and communication. (moizer, 18:37:34) * Persisted data will also not be recovered due to this incompatibility (moizer, 18:39:25) * Is this acceptable? (moizer, 18:39:36) * Title : MD-SAL Clustering for Helium (moizer, 18:41:42) * MD-SAL Clustering for Helium R1 (moizer, 18:41:54) * Final title : MD-SAL Clustering changes for Helium R1 (moizer, 18:42:16) * Response requested by COB Friday (moizer, 18:42:31) * ACTION: Moiz to send the message (moizer, 18:42:56) * We will proceed with the assumption that backward compatibility is not to be supported (moizer, 18:43:30) Meeting ended at 19:19:18 UTC. People present (lines said) --------------------------- * moizer (44) * odl_meetbot (3) Generated by `MeetBot`_ 0.1.4