Send gossip to node with older state
Implement and test.
The recipient of the gossip can use the gossip overview to determine whether:
- it has a newer version of the gossip state, in which case it sends that back to the gossiper, or
The recipient of the gossip can use the gossip overview to determine whether:
- it has a newer version of the gossip state, in which case it sends that back to the gossiper, or
Leave a comment
on 2012-06-29 14:46 *
By Patrik Nordwall
For the record. We did some nice improvements. Essentially it is as already described in the cluster specification. Now it is implemented and tried out.
The results are interesting. Previously we only gossiped to random live member.
Changes:
Some results of joining one more member to a large (~50 nodes) cluster.
When using only gossip to random live member (as before):
When using improvements:
As you see it is a huge difference in time, but also number of gossip messages are reduced.
See attached files for full results, if you are interested.
The test uses gossip-interval=500ms, so using the default 1s is slower (~ double time, ~ same amount of messages). That is what we want it to be - tradeoff between propagation time and network load.
The results are interesting. Previously we only gossiped to random live member.
Changes:
- Gossip to nodes with different view (using seen table) with certain probability (otherwise any random as before)
- Gossip chat, gossip back to sender
- Immediate gossip to joining node
Some results of joining one more member to a large (~50 nodes) cluster.
When using only gossip to random live member (as before):
Convergence of [48] nodes reached, it took [216306 ms], received [mean=446 min=424 max=476] gossip messages per node
Convergence of [49] nodes reached, it took [255373 ms], received [mean=454 min=482 max=536] gossip messages per node
Convergence of [50] nodes reached, it took [222825 ms], received [mean=450 min=416 max=467] gossip messages per node
When using improvements:
Convergence of [48] nodes reached, it took [37107 ms], received [mean=104 min=104 max=104] gossip messages per node
Convergence of [49] nodes reached, it took [39070 ms], received [mean=126 min=92 max=208] gossip messages per node
Convergence of [50] nodes reached, it took [39104 ms], received [mean=136 min=114 max=185] gossip messages per node
As you see it is a huge difference in time, but also number of gossip messages are reduced.
See attached files for full results, if you are interested.
The test uses gossip-interval=500ms, so using the default 1s is slower (~ double time, ~ same amount of messages). That is what we want it to be - tradeoff between propagation time and network load.
file:a_BXMkWEar4yw-acwqjQWU
Before improvements
Before improvements
file:a_Gp8qWEar4yw-acwqjQWU
After improvements
After improvements
Updating tickets (#620, #679, #725, #750, #752, #753, #754, #763, #789, #870, #893, #922, #953, #954, #971, #977, #983, #985, #987, #991, #1026, #1045, #1051, #1060, #1061, #1084, #1098, #1099, #1133, #1134, #1135, #1136, #1137, #1194, #1225, #1226, #1243, #1245, #1247, #1248, #1254, #1261, #1300, #1317, #1391, #1412, #1791, #1793, #1901, #1908, #1911, #1912, #1913, #1914, #1915, #1916, #1917, #1922, #1983, #1987, #1996, #1997, #1998, #2066, #2077, #2105, #2117, #2133, #2143, #2149, #2151, #2152, #2153, #2155, #2157, #2158, #2159, #2160, #2161, #2162, #2163, #2164, #2165, #2167, #2171, #2175, #2176, #2177, #2180, #2182, #2184, #2185, #2193, #2199, #2202, #2204, #2206, #2207, #2209, #2210)