分布式系统中

时间:2015-10-06 11:08:02

标签: computer-science distributed-computing

总订单:

  

Lamport时间戳可用于创建事件的总排序   通过使用一些任意机制来破坏关系的分布式系统   (例如,过程的ID)。

逻辑顺序:

  

当两个实体通过消息传递进行通信时,则发送事件   据说发生在'之前。接收事件和逻辑顺序   可以在事件之间建立

enter link description here

有人能给我一个例子,我可以看到逻辑顺序和总顺序的差异吗?两个订单有什么区别?

2 个答案:

答案 0 :(得分:3)

由于您正在寻找一个关于逻辑顺序和总计顺序之间差异的示例,这是一个小故事,我的旧分布式算法老师在他想要解释该特定主题时告诉我们。

  • 让我们说A欠B一些钱。
  • A在电话中告诉B,A将在下午6点在A的当地分行记入B的账户。
  • 所以在下午6点之后的任何时候,B都可以从A的银行取钱。
  • 我们说B很好,并告诉A的分支,晚上8点。他们可以从A账户中扣除A欠B的钱。
  • 因此,B的分支机构将基本上向中央银行服务器进行借记通话,要求将A所欠的钱转移到B的账户,这就是将要发生的事情。
  • B有足够的时间确保A向B银行表明,A有足够的资金,以便A的借记交易可以通过。
  • B会认为它应该通过,对吗?
  • 但事实证明,B的分支当地时间远远超过实时。该分支认为是晚上8点,现在还不到晚上8点。
  • A正在保守他的话,恰好在下午6点,A的分支恰好在时间上好了。 (与实时同步)
  • 所以在下午6点,A已经将A欠B的金额归功于A的中央银行服务器。
  • 不幸的是,中央银行服务器实时收到B的消息要比A发送消息的时间早得多。
  • 中央银行服务器没有查看任何逻辑时间。它正在查看有借记卡交易的实时情况。银行是否有资金支付这些借记交易?
  • 不,没有。所以B的请求被拒绝了。这是因为在现实世界的情况下,逻辑时钟不够好。

那么是什么原因引起了这个问题? 事实上,B分支的实时概念与实时完全不一致。 B本地银行的计算机可能有一个接近实时的时钟。它要么比实时更快,要么比实时更慢。

恰好A的A分支的时间与实时完全同步,但这对A没有帮助。

这个例子似乎有点复杂,无法理解。 这被称为时钟同步问题

我强烈要求您阅读Lamport的paper关于时间,时钟和分布式系统中事件的排序,因为他提出了一种不同的解释差异的方法。

您可能还会发现这些引用非常方便:

我希望这会有所帮助。

答案 1 :(得分:0)

RE:“不,没有。因此,B的请求被拒绝。这是因为在现实世界中,逻辑时钟不够好,我认为您的意思是“实际时钟不够好”,是吗?由于逻辑时钟是解决此问题的公认方法。