The following are the three main types or orderings that have been studied in the context
of ordered multicasts:
1. Local order multicast (also called single-source FIFO)
2. Causal order multicast
3. Total order multicast
Local order multicast: In local order multicast, if a process multicasts two messages in the
order (m1, m2), then every correct process in the group must deliver m1 before m2. There
are many applications of local order multicast: One is in the implementation of a DSM
where the primary copy of each variable is maintained by an exclusive process, and all
other processes use cached copies of it. Whenever the primary copy is updated, the owner
of the primary copy multicasts the updates to the holders of the cached copies, and these
copies are updated in the same order. Other applications include video distribution and
software distribution.
Causal order multicast: Let m1 and m2 be a pair of messages in a group, such that
sent(m1) ≺ sent(m2). Then causal order multicast requires that every process in the system
must deliver m1 before m2. Local order multicast trivially satisfies this. Causal order multicast
modifies it by imposing delivery orders among causally ordered messages from distinct senders too. Here is an example: A group of students scattered across a large campus are preparing for an upcoming quiz through a shared bulletin board. Someone comes up with a question and throws it to the entire group, and whoever knows the answer multicasts
it to the entire group. The delivery of a question to each student must happen before
the delivery of the corresponding answer, since these are causally related. It will be awkward
(and a violation of the rules of causal ordered multicast) if some student receives the
answer first and then the corresponding question!
Total order multicast: In total order atomic multicast, every member of the group is required
to deliver all messages sent within the group in identical order. It implies that if every process
i maintains a queue Q · i (initially empty) to which a message is appended as soon as it
is delivered, then eventually, for any two distinct processes i and j, Q . i = Q . j. Note that the
order in which the messages are delivered has no connection with the real time at which
these messages were sent out.
MySQL used Total Order multicast for group communication of group replication.
Group Communication
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天在链接远程数据库(我的远程数据库是mysql5.7的)时报了一个“[Err] 1055 - Expressio...
- dispatch_group_t group = dispatch_group_create();dispatch...
- group by是关系型数据库中较为常用的方法,rails也提供了类似的group_by方法,但两者还是有不小区别...
- 一直对dispatch_group_enter(group)、dispatch_group_leave(group...