-
Improvement
-
Resolution: Unresolved
-
Medium
-
None
The cutover to Akka Artery and tell-based protocol (which puts more strain on persistence) crops up problems with serialization of our messages, like CONTROLLER-2037 (estimates) and CONTROLLER-2043 (raw volume).
Given that Akka has deprecated Java serialization as the protocol to use and the mentioned issues, it would be prudent to implement a better serialization protocol around Payloads, both in order to remove dependency on Java serialization and to improve its efficiency.
This mostly revolves around org.opendaylight.controller.cluster.raft.messages.Payload extensibility – we really want to attach a PayloadRegistry which will handle dispatch to serialization based on a single-byte type and base it on DataOutput/WritableObject interfaces. This will allow us to reduce the message overheads (which are significant).
We should also deal with sal-akka-raft message serialization based on similar interface and tie it in with sal-akka-segmented-journal, so that it can operate more efficiently than through Serializable.
- blocks
-
CONTROLLER-2073 Ditch Akka persistence from sal-akka-raft
- Confirmed
- is blocked by
-
CONTROLLER-2071 Switch to our fork of atomix-storage
- Resolved
-
CONTROLLER-2072 Remove Kryo from atomix-storage
- In Review
- is duplicated by
-
CONTROLLER-1969 Migrate from using JavaSerializer
- Resolved
- relates to
-
CONTROLLER-2043 Circuit breaker timeout with BGP and tell-based protocol
- Resolved
-
CONTROLLER-2037 Fail to serialize oversized message
- Resolved
- split to
-
CONTROLLER-2089 Do not store writerUuid in sal-akka-segmented-journal
- In Review