Clustering Overhead: State Synchronization Cost
A 3-node ONOS cluster managing 5,000 IoT devices performs state synchronization for every flow rule installation. Given:
- Flow installation rate: 2,000 flows/second (peak)
- Raft consensus requires majority (2/3 nodes) acknowledgment
- Network RTT between controller nodes: 5 ms
- State record size: 512 bytes per flow rule
State synchronization bandwidth required per controller instance:
\[B_{sync} = R_{flow} \times S_{record} \times (N_{nodes} - 1)\]
\[B_{sync} = 2{,}000 \text{ flows/s} \times 512 \text{ bytes} \times 2 \text{ peers} = 2{,}048{,}000 \text{ bytes/s} = 2.05 \text{ MB/s}\]
Total cluster bandwidth: \(3 \times 2.05 = 6.15\) MB/s for state replication alone (excluding data plane traffic).
Latency penalty from consensus protocol:
\[L_{consensus} = RTT + T_{vote} + T_{commit} = 5\text{ ms} + 2\text{ ms} + 3\text{ ms} = 10\text{ ms}\]
This 10 ms penalty applies to EVERY flow installation in clustered mode. For 2,000 flows/sec, this represents:
\[T_{overhead} = 2{,}000 \times 0.01 = 20 \text{ seconds of compute time per second}\]
This exceeds real-time capacity, forcing parallel processing across cluster members. Single controller with no consensus avoids this overhead entirely, achieving 50,000 flows/sec throughput.