浏览 1572 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-04
从global.erl摘抄的... %% Suppose nodes A and B connect, and C is connected to A. %% Here's the algorithm's flow: %% %% Node A %% ------ %% << {nodeup, B} %% TheLocker ! {nodeup, ..., Node, ...} (there is one locker per node) %% B ! {init_connect, ..., {..., TheLockerAtA, ...}} %% << {init_connect, TheLockerAtB} %% [The lockers try to set the lock] %% << {lock_is_set, B, ...} %% [Now, lock is set in both partitions] %% B ! {exchange, A, Names, ...} %% << {exchange, B, Names, ...} %% [solve conflict] %% B ! {resolved, A, ResolvedA, KnownAtA, ...} %% << {resolved, B, ResolvedB, KnownAtB, ...} %% C ! {new_nodes, ResolvedAandB, [B]} %% %% Node C %% ------ %% << {new_nodes, ResolvedOps, NewNodes} %% [insert Ops] %% ping(NewNodes) %% << {nodeup, B} %% <ignore this one> %% A和B之间先互相换信息,A告诉C有关B的信息, C会主动连接B的 这是在global模块实现的 而不是erts的一部分. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-04
哦..这个要回头看看...
就爱老大贴E文.... |
|
返回顶楼 | |
发表时间:2009-03-04
哈哈 俺只是把有用的信息提供给大家看 形式就不重要 请大家原谅
|
|
返回顶楼 | |
发表时间:2009-03-04
哦,我明白了,A和B之间确认,是不是用来确定B是否指定为connect_all false?
呵呵.如果是, 就不会返回给C了. |
|
返回顶楼 | |
发表时间:2009-03-04
你是对的!
|
|
返回顶楼 | |