Adaptive(Group Communication) ProtocolsRobbert van RenesseCornell University‹ÅÆWhy Adaptivity?Need to respond to changes in:– Network load– Connectivity (e.g., connected mobile)– Resource availability – Application traffic patterns– Security concerns (e.g., intrusions)Programming AdaptivityASSUMPTIONS VIOLATIONSCONFIGURATIONANALYSISRESOURCE PERFORMANCERESERVATION MONITORINGDynamic ConfigurationInitial NewFinalizeconfiguration configurationViolation of ReconfigureAssumptions (adaptation)Example -- FirewallNew GroupwareFirewallparticipantSignCryptApproaches1) write complex code to adapt to manysituations.2) write many pieces of simple code, eachdealing with a small problem in a particular situation, and configure and reconfigure on-the-fly.Æ‹‹‹Problems with first approachComplex protocolsHard to tune, optimize, prove correctWhen multiple such protocols are composed into a protocol stack, they fight with one another oscillation‹‹‹‹Problems with second approachGetting the interfaces right is difficultMay lead to performance problemsReconfiguration on-the-fly is difficultCorrectness concerns while switching‹‹Example: total orderSpec: if two processes P1 and P2 both deliver messages M1 and M2, they do so in the same order– even if they were sent by different processesUseful for replication: all replicas need to receive updates in the same orderNo protocol…Protocol 1: sequencerSEQSequence number ...
Voir