Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/Vonng/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
MuAlex committed May 6, 2018
2 parents 7fadf50 + 25b0f88 commit 79cacbf
Show file tree
Hide file tree
Showing 4 changed files with 180 additions and 31 deletions.
8 changes: 8 additions & 0 deletions ch8.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,14 @@

单调钟适用于测量持续时间(时间间隔),例如超时或服务的响应时间:Linux上的`clock_gettime(CLOCK_MONOTONIC)`,和Java中的`System.nanoTime()`都是单调时钟。这个名字来源于他们保证总是前进的事实(而时钟可以及时跳回)。

你可以在某个时间点检查单调钟的值,做一些事情,且稍后再次检查它。这两个值之间的差异告诉你两次检查之间经过了多长时间。但单调钟的绝对值是毫无意义的:它可能是计算机启动以来的纳秒数,或类似的任意值。特别是比较来自两台不同计算机的单调钟的值是没有意义的,因为它们并不是一回事。

在具有多个CPU插槽的服务器上,每个CPU可能有一个单独的计时器,但不一定与其他CPU同步。操作系统会补偿所有的差异,并尝试向应用线程表现出单调钟的样子,即使这些线程被调度到不同的CPU上。当然,明智的做法是不要太把这种单调性保证当回事【40】。

如果NTP协议检测到计算机的本地石英钟比NTP服务器要更快或更慢,则可以调整单调钟向前走的频率(这称为**偏移(skewing)**时钟)。默认情况下,NTP允许时钟速率增加或减慢最高至0.05%,但NTP不能使单调时钟向前或向后跳转。单调时钟的分辨率通常相当好:在大多数系统中,它们能在几微秒或更短的时间内测量时间间隔。

在分布式系统中,使用单调钟测量**经过时间(elapsed time)**(比如超时)通常很好,因为它不假定不同节点的时钟之间存在任何同步,并且对测量的轻微不准确性不敏感。

### 时钟同步与准确性

单调钟不需要同步,但是时钟需要根据NTP服务器或其他外部时间源来设置才能有用。不幸的是,我们获取时钟的方法并不像你所希望的那样可靠或准确——硬件时钟和NTP可能会变幻莫测。举几个例子:
Expand Down
14 changes: 8 additions & 6 deletions colophon.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 关于作者

Martin Kleppmann是英国康桥大学分布式系统的研究员。此前他曾在互联网公司担任过软件工程师和企业家,其中包括LinkedIn和Rapportive,负责大规模数据基础架构。在这个过程中,他以艰难的方式学习了一些东西,他希望这本书能够让你避免重蹈覆辙。
**Martin Kleppmann**是英国剑桥大学分布式系统的研究员。此前他曾在互联网公司担任过软件工程师和企业家,其中包括LinkedIn和Rapportive,负责大规模数据基础架构。在这个过程中,他以艰难的方式学习了一些东西,他希望这本书能够让你避免重蹈覆辙。

Martin是一位常规会议演讲者,博主和开源贡献者。他认为,每个人都应该有深刻的技术理念,深层次的理解能帮助我们开发出更好的软件。

Expand All @@ -22,12 +22,14 @@ Alibaba+-Finplus 架构师/全栈工程师 (2015 ~ 2017)

## 后记

《设计数据密集型应用》封面上的动物是**印度野猪(Sus scrofa cristatus)**,它是在印度,缅甸,尼泊尔斯里兰卡和泰国发现的一种野猪的亚种。它们与欧洲公猪不同,它们具有较高的背部刷毛,没有羊毛底毛,以及更大,更直的头骨
《设计数据密集型应用》封面上的动物是**印度野猪(Sus scrofa cristatus)**,它是在印度、缅甸、尼泊尔斯里兰卡和泰国发现的一种野猪的亚种。与欧洲野猪不同,它们有更高的背部鬃毛,没有体表绒毛,以及更大更直的头骨

印度的野猪有一头灰色或黑色的头发,脊椎上有僵硬的硬毛。雄性有突出的犬齿(称为T),用来与对手战斗或抵御掠食者。雄性比雌性大,但这些物种平均肩高33-35英寸,体重200-300磅。他们的天敌包括熊老虎和各种大型猫科动物。
印度的野猪有一头灰色或黑色的头发,脊背上有短而硬的毛。雄性有突出的犬齿(称为T),用来与对手战斗或抵御掠食者。雄性比雌性大,这些物种平均肩高33-35英寸,体重200-300磅。他们的天敌包括熊老虎和各种大型猫科动物。

这些动物夜行且杂食 —— 它们吃各种各样的东西,包括根,昆虫,腐肉,坚果,浆果和小动物。野猪也被称为通过垃圾和作物田地,造成大量的破坏,并赢得农民的仇恨。他们需要每天吃4,000 ~ 4,500卡路里。公猪有着发达的嗅觉,这有助于它们寻找地下的植物材料和挖掘动物。但是它们的视力很差
这些动物夜行且杂食——它们吃各种各样的东西,包括根、昆虫、腐肉、坚果、浆果和小动物。野猪经常因为破坏农作物的根被人们所熟知,他们造成大量的破坏,并被农民所敌视。他们每天需要摄入4,000 ~ 4,500卡路里的能量。野猪有发达的嗅觉,这有助于寻找地下植物和挖掘动物。然而,它们的视力很差

野猪在人类文化中一直具有重要意义。在印度教传说中,野猪是毗湿奴神的化身。在古希腊的丧葬纪念碑中,它是一个勇敢失败者的象征(与胜利的狮子相反)。由于它的侵略,它被描绘在斯堪的纳维亚,日耳曼和盎格鲁 ~ 撒克逊战士的盔甲和武器上。在中国十二生肖中,它象征着决心和急躁。
野猪在人类文化中一直具有重要意义。在印度教传说中,野猪是毗湿奴神的化身。在古希腊的丧葬纪念碑中,它是一个勇敢失败者的象征(与胜利的狮子相反)。由于它的侵略,它被描绘在斯堪的纳维亚、日耳曼和盎格鲁撒克逊战士的盔甲和武器上。在中国十二生肖中,它象征着决心和急躁。

O'Reilly封面上的许多动物都受到威胁;所有这些对世界都很重要。要了解有关如何提供帮助的更多信息,请访问animals.oreilly.com。封面图片来自Shaw's Zoology。封面字体是URW Typewriter和Guardian Sans。文字字体是Adobe Minion Pro;图中的字体是Adobe Myriad Pro;标题字体是Adobe Myriad Condensed;代码字体是Dalton Maag的Ubuntu Mono。
O'Reilly封面上的许多动物都受到威胁,这些动物对世界都很重要。要了解有关如何提供帮助的更多信息,请访问animals.oreilly.com。

封面图片来自Shaw's Zoology。封面字体是URW Typewriter和Guardian Sans。文字字体是Adobe Minion Pro;图中的字体是Adobe Myriad Pro;标题字体是Adobe Myriad Condensed;代码字体是Dalton Maag的Ubuntu Mono。
Loading

0 comments on commit 79cacbf

Please sign in to comment.