《云数据管理》 2.1 逻辑时间和Lamport时钟

本节书摘来自华章出版社《云数据管理》一书中的第2章,第1.1节,作者迪卫艾肯特·阿格拉沃尔,更多章节内容可以访问“华章计算机”公众号查看

 Lamport于1978年在他的一篇代表性论文里提出了一个简单的分布式系统模型[Lamport,
1978]。该模型中,进程被建模成一个全序事件的序列。事件分为本地(local)事件、发送(send)事件和接收(receive)事件。发送事件负责发送消息,该消息由相应的接收事件接收。本地事件是非通信事件,如,内存读写、矩阵相乘等。图2-1展示了一个包括4个进程(p1、p2、p3和p4)的分布式系统示例。事件e2和e4在进程p1上执行,事件e1、e3和e9在进程p2执行,等等。事件e3是进程p2上的本地事件,而事件e1是一个发送事件,e2是相应的接收事件。

若两个事件e和f满足下列任一条件,则事件e发生在事件f之间,记作e→f:

1. 如果e和f是发生在同一进程内的两个事件,并且e发生在f之前,那么e→f;

2. 如果e代表了某个进程的消息发送事件send(m),f代表另一进程中针对这同一个消息的接收事件receive(m),那么e→f;

3. 如果存在一个事件g,满足e→g并且g→f,那么e→f。

 

图2-1 事件和消息

“发生在前”(happens-before)关系可以很好地反映任意两个事件之间的潜在因果依赖关系。并且,如果两个事件e和f既不存在e→f关系,也不存在f→e关系,那么e和f是并发的。在图2-1中,事件e4发生在事件e6之前,而事件e3与事件e2和e4都是并发的。

时间概念以及时间与事件之间的关系对很多分布式系统协议来说都是至关重要的。一般情况下,不一定需要实时时钟或近似实时时钟,只要有一个时间概念能够捕获潜在的因果关系就足够了。Lamport引入了一种可以捕获事件之间的潜在因果关系的逻辑时钟概念。逻辑时钟为每一个事件e赋一个值clock(e),因此,对任意两个事件e和f,存在如下关系:

如果e→f,那么clock(e)<clock(f)。

为了能够实现这种逻辑时钟,Lamport为每一个进程设置了一个时钟计数器。该计数器在同一进程中的任意两个事件之间都必须是递增的,并且,每一个消息都携带了发送者的时钟值。当消息到达目的地之后,本地时钟计数器被设置为本地值的最大值,同时消息的时间戳加1。这种实现方式可以满足上述逻辑时钟的条件。

在图2-2中,使用与图2-1相同的例子,为系统中的所有事件都赋一个逻辑时间。

 

图2-2 Lamport时钟

因为“发生在前”关系是一个偏序,因此,多个事件可能被赋值相同的逻辑时钟。但是,在很多协议中,为每一个事件赋一个唯一的时间值更为方便。这种情况下,为了打破这种关系,时间值可以设置为<t, p>,其中,t是本地时钟计数器设置的逻辑时间,p是事件执行所在进程的进程标识。一般情况下,每一个进程都被赋值一个唯一的全序的进程标识,这些进程标识可以打破具有相同逻辑时间的事件之间的关系。

时间: 2024-09-07 18:29:53

《云数据管理》 2.1 逻辑时间和Lamport时钟的相关文章

《云数据管理》2.1逻辑时间和Lamport时钟

本节书摘来自华章出版社<云数据管理>一书中的第2章,第1节,作者迪卫艾肯特·阿格拉沃尔,更多章节内容可以访问"华章计算机"公众号查看 2.1.1 逻辑时间和Lamport时钟 Lamport于1978年在他的一篇代表性论文里提出了一个简单的分布式系统模型[Lamport, 1978].该模型中,进程被建模成一个全序事件的序列.事件分为本地(local)事件.发送(send)事件和接收(receive)事件.发送事件负责发送消息,该消息由相应的接收事件接收.本地事件是非通信事

《云数据管理:挑战与机遇》分布式数据管理

本节书摘来自华章出版社<云数据管理:挑战与机遇>一书中的第1章,第2节,作者迪卫艾肯特·阿格拉沃尔(Divyakant Agrawal) 苏迪皮托·达斯(Sudipto Das)阿姆鲁·埃尔·阿巴迪(Amr El Abbadi),更多章节内容可以访问"华章计算机"公众号查看. 分布式数据管理 云计算建立在过去几十年计算机科学领域,尤其是在分布式计算和分布式数据管理领域积累的重要概念.协议和模型的基础上.本章主要讨论分布式系统和数据管理的基本背景,其构成了云数据库系统的基础.

《云数据管理:挑战与机遇》一第二章

|第2章 分布式数据管理 云计算建立在过去几十年计算机科学领域,尤其是在分布式计算和分布式数据管理领域积累的重要概念.协议和模型的基础上.本章主要讨论分布式系统和数据管理的基本背景,其构成了云数据库系统的基础.我们的主要目标是为读者提供足够的背景知识,以帮助读者理解后面章节的内容.对这些内容比较熟悉的读者可以直接跳过这些部分.我们同时也为读者提供了一些关于分布式数据库系统的参考资料[Gray and Reuter,1992,2.1 分布式系统 我们首先介绍分布式系统的一些重要基本概念,这些基本概

《云数据管理:挑战与机遇》导读

前 言| 大数据和云计算是研究文献和主流媒体中大量使用的两个术语.当我们走进云计算和数据洪流的时代,经常被问到的一个问题是:云数据管理中的新挑战是什么?本书就是由我们寻求回答这个问题发展而来,并使我们自己对这一问题有了更为深入的理解.本书首先介绍了一些初步的综述性论文,这些综述论文总结了适合键–值存储系统的主要设计原则,这些系统如谷歌的Bigtable.亚马逊的Dynamo和雅虎的PNUTS,通过在一个数据中心或者有可能在世界不同地方的多个数据中心中部署成千上万台服务器来达到前所未有的规模.由于

《云数据管理:挑战与机遇》2.1 导读

<云数据管理>2.1逻辑时间和Lamport时钟 大数据和云计算是研究文献和主流媒体中大量使用的两个术语.当我们走进云计算和数据洪流的时代,经常被问到的一个问题是:云数据管理中的新挑战是什么?本书就是由我们寻求回答这个问题发展而来,并使我们自己对这一问题有了更为深入的理解.本书首先介绍了一些初步的综述性论文,这些综述论文总结了适合键–值存储系统的主要设计原则,这些系统如谷歌的Bigtable.亚马逊的Dynamo和雅虎的PNUTS,通过在一个数据中心或者有可能在世界不同地方的多个数据中心中部署

《云数据管理:挑战与机遇》2.1 向量时钟

本节书摘来自华章出版社<云数据管理>一书中的第2章,第1节,作者迪卫艾肯特·阿格拉沃尔,更多章节内容可以访问"华章计算机"公众号查看 2.1.2 向量时钟 逻辑时钟可以捕获潜在的因果关系,但是,这并不意味着一定有因果关系,逻辑时钟条件只是一个必要条件,并不是充分条件.分布式系统中的所有事件可能需要一个更强的时钟条件: e→f当且仅当clock(e)<clock(f). 该条件可按如下方式实现:为每一进程i赋一个长度为n的向量Vi,n是系统中所有进程的数量.每一个执行的

《云数据管理:挑战与机遇》2.1.3 互斥和仲裁集

本节书摘来自华章出版社<云数据管理>一书中的第2章,第1节,作者迪卫艾肯特·阿格拉沃尔,更多章节内容可以访问"华章计算机"公众号查看 互斥和仲裁集 互斥是并发进程访问共享资源时涉及的一个基本概念.互斥是操作系统中的一个重要操作,后来也被扩展到数据库中.互斥可以按照如下方式进行定义:给定一个进程集合和一个单独的资源,开发一种协议,该协议可以确保在同一时间,一个资源只能被一个进程进行排他性访问.针对集中式系统和分布式系统都已经提出了多种解决方案.针对分布式互斥问题的一种简单的集

中国企业级营销云平台的商业逻辑

  本文作者为中国企业级营销云平台Chinapex CEO Jimmy Hu,分享中国企业级营销云平台的商业逻辑. 营销云平台价值凸显的大环境  营销生态,包含广告主.代理商.供应商和媒体.从上游来讲,广告主的评估体系正在变得越来越科学,在甄选优质的供应商方面拥有更加独立的判断.同时,营销行业需要更加透明,以及掌握更强的技术和数据能力.  整个数字营销环境越来越碎片化,其中包括技术层面的碎片化,比如广告主进行广告多渠道投放,需要和很多家DSP分别合作,但这种人工操作很低效:另外,数据供应商整体比

从ETL工具到企业云数据管理,在大数据风口的Informatica完成蜕变

数据已经成为整个社会的一个重要资产,越来越多的企业正在向数据驱动型企业转型.然而,数据的爆炸性增长,特别是非结构化数据的爆炸性增长使得这种转型面临巨大挑战.有研究显示,到2020年,平均每个互联网用户每天会产生1.5GB数据:一个智能工厂每天产生1PB数据--.未来数据量会越来越大,其中非结构化数据的增速要远远超过传统的结构化数据,使得企业从海量数据中获得洞察面临严峻的挑战. 10月31日,为了探求问题答案,Informatica 的300多名客户和合作伙伴来到2017 Informatica数