swim: introduce dissemination component
Dissemination components broadcasts events about member status updates. When any member attribute is updated (incarnation, status, UUID, address), the member stands into an event queue. Members from the queue are encoded into each round step message with a higher priority and before anti-entropy section. It means, then even if a cluster consists of hundreds of members and one of them was updated on one of instances, this update will be disseminated regardless of whether this memeber is encoded into anti-entropy section or not. It drastically speeds events dissemination up, according to the SWIM paper, and is noticed in the tests. Part of #3234
Showing
- src/lib/swim/swim.c 151 additions, 4 deletionssrc/lib/swim/swim.c
- src/lib/swim/swim.h 4 additions, 0 deletionssrc/lib/swim/swim.h
- src/lib/swim/swim_proto.c 26 additions, 0 deletionssrc/lib/swim/swim_proto.c
- src/lib/swim/swim_proto.h 56 additions, 0 deletionssrc/lib/swim/swim_proto.h
- test/unit/swim.c 40 additions, 8 deletionstest/unit/swim.c
- test/unit/swim.result 16 additions, 6 deletionstest/unit/swim.result
Loading
Please register or sign in to comment