文献笔记——A brief introduction to distributed systems(分布式系统)

本文主要讨论了分布式系统。作者提供了关于分布式系统的概述,是一份很好的新手教程。


在这里插入图片描述

Fig.1 大纲

在论文的第一部分,作者简要回顾了计算机的演变,指出了分布式系统的两个技术基础:性能强大的微处理器的发展和高速计算机网络的发明。为什么这些技术很重要?

The result of these technologies is that it is now not only feasible but easy, to put together a computing system composed of many networked computers, be they large or small.

1、什么是分布式系统?

分布式系统的宽泛定义:

A distributed system is a collection of autonomous computing elements that appears to its users as a single coherent system.

请注意,有两个特征:

特征1:自主计算元素的集合

  • 每个计算元素(作为一个节点)都可以相互独立行动。一个集合中的节点可以彼此不同(从非常大的高性能计算机到手机或甚至更小的设备)。
  • 他们必须沟通和协调行动,以实现一个共同的目标。

为了实现这一特点,我们必须考虑如何管理系统中的成员,如何处理缺乏统一的时间参照物的问题。

特征2:一个单一的连贯系统

in a single coherent system the collection of nodes as a whole operates the same, no matter where, when, and how interaction between a user and the system takes place.

  • 一个重要的设计目标:分配透明度。 详细内容见下一节。

分布式系统像中间件类似组织

为了帮助开发分布式应用,分布式系统通常被组织为一个单独的软件层,从逻辑上讲,它被置于作为计算机各自操作系统之上。这种组织方式如图所示。

Fig.2 middleware(from "A brief introduction to distributed systems

Fig.2 中间件(from "A brief introduction to distributed systems")

它提供以下服务:

  • 资源管理
  • 便于应用间通信的设施
  • 安全服务
  • 账户服务
  • 掩盖故障并修复故障

2、4个设计目标

A distributed system should make resources easily accessible; it should hide the fact that resources are distributed across a network; it should be open; and it should be scalable.
分布式系统应该使资源容易获得;它应该隐藏资源分布在网络上的事实;它应该是开放的;而且应该是可扩展的。

1)支持资源共享

资源几乎可以是任何东西,但典型的例子包括外围设备、存储设施、数据、文件、服务和网络,仅举几例。

通过支持资源共享,它有助于降低成本,促进不同节点之间的合作。

2)使分配透明化

有七种类型的分配透明度。

Transparency描述
Access隐藏数据表示的差异和对象的访问方式
Location隐藏对象的位置(通常通过只给资源分配逻辑名称来实现)。
Relocation隐藏一个对象在使用过程中的移动(这在云计算的背景下变得越来越重要)
Migration隐藏一个对象可能移动到另一个地方(它支持由用户发起的进程和资源的移动,而不影响正在进行的通信和操作)。
Replication隐藏一个对象被复制的情况
Concurrency隐藏一个对象可能被几个独立的用户共享(通过锁定机制实现)。
Failure隐藏一个对象的故障和恢复

为了区分 relocation 和 migration,有两个例子可以帮助理解:

  • Relocation transparent: 整个网站可能已经从一个数据中心转移到另一个数据中心,以更有效地利用磁盘空间,但用户不应该注意到。
  • Migration transparent: 移动电话之间的沟通–无论两个人是否真的在移动,移动电话都能让他们继续对话。

试图盲目地对用户隐藏所有的分布式环节并不是一个好主意 。完全的分配度是不可能实现的。高度的透明度和系统的性能之间也有一个权衡。

The conclusion is that aiming for distribution transparency may be a nice goal when designing and implementing distributed systems, but that it should be considered together with other issues such as performance and comprehensibility. The price for achieving full transparency may be surprisingly high.
结论是,在设计和实施分布式系统时,以分布式透明为目标可能是一个很好的目标,但它应该和其他问题一起考虑,比如性能和可理解性。实现完全透明的代价可能是惊人的高。

3)开放性

An open distributed system is essentially a system that offers components that can easily be used by, or integrated into other systems. At the same time, an open distributed system itself will often consist of components that originate from elsewhere.
一个开放的分布式系统本质上是一个系统,它提供的组件可以很容易地被其他系统使用,或集成到其他系统中。同时,一个开放的分布式系统本身往往由来自其他地方的组件组成。

  • 互操作性: 两个来自不同制造商的系统或组件的实现可以共存并一起工作的程度,只需依赖共同标准所规定的彼此的服务。
  • 可组合性: 即可移植性,为一个分布式系统A开发的应用程序可以不加修改地在一个与A实现相同接口的不同分布式系统B上执行的程度。
  • 可扩展性: 增加新的组件或更换现有的组件应该很容易,而不影响那些原有的组件。

将策略与机制分离

To achieve flexibility in open distributed systems, it is crucial that the system be organized as a collection of relatively small and easily replaceable or adaptable components.

In theory, strictly separating policies from mechanisms seems to be the way to go. However, there is an important trade-off to consider: the stricter the separation, the more we need to make sure that we offer the appropriate collection of mechanisms. In practice, this means that a rich set of features is offered, in turn leading to many configuration parameters.
为了在开放的分布式系统中实现灵活性,关键是要把系统组织成一个相对较小且容易替换或适应的组件的集合。
从理论上讲,将政策与机制严格分开似乎是个好办法。然而,有一个重要的权衡需要考虑:分离得越严格,我们就越需要确保我们提供适当的机制集合。在实践中,这意味着提供了丰富的功能集合,反过来导致了许多配置参数。

4)具有可扩展性

a. 可扩展性的不同方面

一个系统的可扩展性可以通过三个不同的维度来衡量。

  • 规模可扩展性: 一个系统可以就其规模进行扩展,这意味着我们可以很容易地在系统中增加更多的用户和资源,而不会有任何明显的性能损失。

当一个系统需要扩展时,我们经常会遇到集中式服务的限制。许多服务是集中式的,因为它们是使用分布式系统中特定机器上运行的单个服务器或服务器组来实现的。 这些服务器很容易成为 瓶颈:

  1. 计算能力,受到CPU的限制
  2. 存储能力,包括CPU和磁盘之间的传输速率
  3. 用户和集中服务器之间的网络
  • 地域可扩展性: 一个地理上可扩展的系统是一个用户和资源可能相距甚远的系统。

在一个地理上可扩展的系统中,通信延迟可能是很重要的,这一事实很难被注意到。 另一个阻碍地理可扩展性的问题是,广域网络中的通信在本质上比局域网络的可靠性要差得多。此外,我们还需要处理有限的带宽问题。

  • 管理的可扩展性: 一个可管理的系统是一个即使跨越了许多独立的行政组织,仍然可以被轻易管理的系统。

需要解决的一个主要问题是在资源使用、管理和安全方面的政策冲突。

If a distributed system expands to another domain, two types of security measures need to be taken. First, the distributed system has to protect itself against malicious attacks from the new domain. Second, the new domain has to protect itself against malicious attacks from the distributed system.
如果一个分布式系统扩展到另一个领域,需要采取两类安全措施。首先,分布式系统必须保护自己免受来自新领域的恶意攻击。第二,新领域必须保护自己免受来自分布式系统的恶意攻击。

b. 扩展技术

When it comes to scaling out, that is, expanding the distributed system by essentially deploying more machines, there are basically only three techniques we can apply: hiding communication latencies, distribution of work, and replication.
当涉及到扩展时,也就是通过部署更多的机器来扩展分布式系统,基本上只有三种技术我们可以应用: 隐藏通信延迟,分配工作,以及复制

  • 隐藏通信延迟适用于地理可扩展性的情况。其基本思想很简单:尽可能地避免等待远程服务请求的响应。当我们等待回复时,我们可以做其他事情。
  • 分区和分布,这涉及到把一个组件,分割成更小的部分,随后把这些部分分散到系统中。例如:由DNS提供的命名服务,分布在几台机器上,从而避免了由一台服务器来处理所有名称解析的请求。
  • 复制组件: 复制不仅增加了可用性,而且还有助于平衡组件之间的负载,导致更好的性能。而且它还可以帮助隐藏通信延迟。请注意,复制需要一些全局同步机制。

c. 结论

从技术角度来看,规模的可扩展性是最容易。地理上的可扩展性是一个更棘手的问题,因为网络延迟是无法避免的。利用分布、复制和缓存技术与不同形式的一致性技术可以一定程度上解决问题。管理可扩展性似乎是最难解决的,部分原因是我们需要处理一些非技术问题。

5) 注意一些错误的假设

在第一次开发分布式应用时,每个人都会有以下错误的假设:

  • 网络是可靠的
  • 网络是安全的
  • 网络是同质的
  • 拓扑结构不会改变
  • 延迟是零
  • 带宽是无限的
  • 传输成本为零
  • 只有一个管理员

3 三种类型的分布式系统

分布式系统有三种主要类型:分布式计算系统、分布式信息系统和普适系统。

1) 高性能的分布式计算

分布式计算系统也有三种类型:

  • 集群计算 底层硬件由类似的工作站或个人电脑的集合组成,使用高速局域网紧密连接。此外,每个节点都运行相同的操作系统。几乎在所有情况下,集群计算都用于并行编程,其中一个单一的(计算密集型)程序在多台机器上并行运行。

  • 网格计算 由分布式系统组成,这些系统通常被构建为计算机系统的联盟,每个系统可能属于不同的管理领域,并且在涉及硬件、软件和部署的网络技术时可能非常不同。网格计算系统中的关键问题是,来自不同机构的资源被汇集在一起,允许来自不同机构的一群人合作,确实形成了一个系统的组合。

  • 云计算 提供了动态构建基础设施的设施,并从可用的服务中组成所需的东西。与与高性能计算密切相关的网格计算不同,云计算远不止是提供大量的资源。云计算的特点是一个易于使用和访问的虚拟化资源池。而且,资源的使用方式可以动态配置,为可扩展性提供了基础:如果需要做更多的工作,客户可以简单地获得更多的资源。在实践中,云被组织成四个层次,如图3所示:

在这里插入图片描述

Fig.3 云计算的结构(from "A brief introduction to distributed systems")
  1. Hardware: 处理器、路由器,但也包括电源和冷却系统。
  2. Infrastructure: 大多数云计算平台的骨干。它部署了虚拟化技术,为客户提供一个由虚拟存储和计算资源组成的基础设施。
  3. Platform: 平台层为云计算客户提供的服务类似操作系统为应用开发者提供的服务。
  4. Application:实际软件在这一层运行,并提供给用户进一步定制性。

分布式共享内存多计算机(或简称DSM系统)

为了克服共享内存系统和分布式内存系统的局限性,DSM系统允许一个处理器在另一台计算机上寻址一个内存位置,就像寻址本地内存一样。这可以利用操作系统现有的技术来实现,例如,将各个处理器的所有主内存页映射到一个单一的虚拟地址空间。

但是,DSM最终不得不被放弃,原因很简单,性能永远无法满足程序员的期望,他们宁愿求助于复杂得多、但性能更好(可预测)的消息传递编程模型。

在这一节的末尾,作者说:“An important side-effect of exploring the hardware-software boundaries of parallel processing is a thorough understanding of consistency models”. 我无法理解是什么意思。如果您对这句话有什么见解,请指点我一下

2) 分布式信息系统

Another important class of distributed systems is found in organizations that were confronted with a wealth of networked applications, but for which interoperability turned out to be a painful experience.
另一类重要的分布式系统出现在一些组织中,这些组织面临着大量的网络化应用,但对它们来说,互操作性是一种痛苦的经历。

解决方案是将应用程序整合到一个企业范围的信息系统中。根据整合发生的地方,有两种类型的分布式信息系统。

  • 分布式事务处理: 在最底层的集成允许客户将几个请求(可能是针对不同的服务器)打包成一个更大的请求,并让其执行。
  • 企业应用集成(EAI): 集成通过让应用程序之间直接通信来进行。

一般来说,有四种方法来支持企业应用集成:

  1. 文件传输:一个应用程序产生一个包含共享数据的文件,随后被其他应用程序读取。有很多事情需要达成一致(文件格式和布局,文件管理,更新传播)。
  2. 共享数据库: 正如字面意思一样。
  3. 远程程序调用(RPC): RPC的一个主要缺点是,调用者和被调用者需要同时启动和运行才能成功。
  4. 消息传递: 消息传递系统将来自应用A的请求,发送到应用B,并在B上执行。消息传递系统确保最终请求被传递,如果需要,最终也会返回一个响应。
我不能很好地理解这部分。有许多技术细节我需要进一步学习

3) 普适系统

移动和嵌入式计算设备的引入导致了通常所说的普适性系统。它们的独特之处在于,用户和系统组件之间的分离更加模糊了。

  • Ubiquitous computing systems(泛在计算系统?): 该系统是普遍存在的,并持续存在。泛在计算系统的核心要求大致如下:
  1. 分布: 设备以透明的方式进行联网、分布和访问
  2. 交互: 用户和设备之间的互动是非常不显眼的。
  3. 语境意识: 系统意识到用户的环境,以优化互动。
  4. 自主性: 设备在没有人类干预的情况下自主运行,因此是高度自我管理的。
  5. 智能性: 系统作为一个整体可以处理广泛的动态行动和交互
我想作者一定是在谈论ChatGPT
  • 移动计算系统: 首先,构成(分布式)移动系统一部分的设备可能差别很大,包括智能手机、遥控器、传呼机、汽车设备等等。其次,在移动计算中,设备的位置被认为会随时间而改变。所以我们需要使用容许中断的网络。

  • 传感器网络: 一个传感器网络通常由几十到几百或几千个相对较小的节点组成,每个节点都配备了一个或多个传感设备。此外,节点往往可以充当执行器。大多数传感器网络使用无线通信,并且节点通常是由电池供电的。因为它们有限的资源、有限的通信能力,在设计系统是必须重点考虑效率。

4 Outlook

在论文的最后,作者集中讨论了分布式系统未来几年的两个发展领域。

可靠性:使系统变得值得信赖

  • 如何防止、处理和恢复由于系统中的固有错误而造成的故障?
  • 如何提供更好的保护以防止蓄意的攻击?
  • 如何保护用户免受系统侵害?

可扩展性:万物互联

  • 开发可扩展的解决方案
  • 将系统视为一个整体,并找到适当的形式来描述观察到的行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23921.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程的终结;展望2023年AI系统方向;AI的下一个阶段

1. OpenAI掌门人Sam Altman:AI的下一个发展阶段 各种AI工具已显现出巨大的日常应用潜力,可以实现人类的各种想法,改善人类的工作方式,比如由Stability.ai发布的开源Stable Diffusion模型,Microsoft和OpenAI联合打造的A…

chatgpt赋能python:如何烧录程序?

如何烧录程序? 作为一个有10年python编程经验的工程师,编写代码已经成为我日常工作中的一部分。然而,在将代码部署到实际设备上之前,我们需要知道如何烧录程序。这篇文章将介绍如何烧录程序,包括一些常见工具和技巧&a…

阿里VP贾扬清被曝将离职创业:建大模型基础设施,已火速锁定首轮融资

杨净 丰色 发自 凹非寺量子位 | 公众号 QbitAI 又一AI大牛,投身大模型浪潮。 量子位最新获悉,一家新的AI公司正在酝酿当中,瞄准AI Infra(AI架构)方向。 即便低调行事,它却水下火爆,备受看好&…

【CXL】cxl-cli、ndctl、daxctl管理linux内核中NVDIMM设备子系统

Intel不断在存储器这边布局: Intel于 2019 年 4 月发布了傲腾持久性内存(Optane DC persistent memory),这是目前市场上唯一商用的持久性内存(Pmem)存储设备。同时也在操作系统层面开发了一系列用于管理Pmem的工具,提供了丰富完备的文档。Pme…

和ChatGPT 比一比谁更懂Kubernetes?

有时,很难得到关于云原生世界中棘手话题的明确答案。哪个是最好的服务网格?平台工程只是devops的另一个标签吗?多云是一种风险吗? 如果你无法从一个人那里得到直截了当的答案——为什么不问一台机器呢? 因此&#xf…

大模型“云上经济”之权力游戏

光阴者百代之过客。 世人皆过客,软件亦如此。 人工智能已有新旧之分。 网友戏称,新人工智能是ChatGPT,旧人工智能是“之前那些”。 历史在重演。 云计算在美国问世的时候,否定论调居多。 一个常见的否定论调是「做生意不用上…

Ilya Sutskever(OpenAI 首席科学家)谈论构建 AGI、alignment、未来模型和启蒙等问题...

来源:图灵人工智能 【编者按:OpenAI 首席科学家 Ilya Sutskever是一位拥有丰富经验的研究人员,他在多个领域都有出色的表现。他曾在多伦多大学工作,并带领谷歌的Brain团队进行人工智能方面的研究。他还与Yoshua Bengio和Geoffrey …

马斯克成立X.AI搞大模型,硬刚OpenAI,已囤万张GPU

来源:量子位 为了“对抗”OpenAI,马斯克成立了一家新公司! 这家公司名为X.AI,就目前看来,马斯克是这家公司的唯一董事。 而“X”是马斯克最近成立的一个空壳公司,近期他已经将自己拥有的推特、SpaceX、特斯…

Python入门必读,百万读者的编程启蒙老师,经典著作蟒蛇书全新升级!

人生苦短,我用 Python ! 什么?你没用过,也没开始学习,甚至没有认真了解过这门语言?那你一定这一秒就开始发力——下面让我们先简单看看 Python 有多火。权威编程语言排行榜 TIOBE,2022 和 2023 都是第一。 …

在前端领域摸爬滚打7年,我终于掌握了这些沉淀技巧

我做开发多年,常常有人问我「软件开发难学吗?」「前端和后端哪个比较简单?」「培训后是否好找工作呢?」这些问题单拎出来比较棘手,三言两语说不清楚,需要你对开发有一个系统了解,问题才能迎刃而…

“前端刘德华”Pink老师送签名图书啦

就算成功的概率为1%又如何呢,如太阳系般波澜壮阔,也只有0.14%产生了生命,平凡的我们绝大多数也终将如整个太阳系的99.86%一般化作死寂。 但这不重要朋友,今天是黑马疯狂星期四,Pink老师开讲了!&#xff01…

《花雕学AI》Poe:一个让你和 AI 成为朋友的平台,带你探索 ChatGPT4 和其他 八种AI 模型的奥秘

你是否曾经梦想过,能够在一个平台上,和多种不同的 AI 模型进行有趣、有用、有深度的对话,甚至还能轻松地把你的对话分享给其他人?如果你有这样的梦想,那么 Poe 一站式 AI 工具箱就是你的不二之选! Poe 是国…

基辛格:ChatGPT预示着一场智能革命,而人类还没准备好

ChatGPT对很多问题给出的答案之所以令人回味,是因为它们提出的问题多于结论。目前,我们拥有一项新颖而壮观的成就——人工智能,它是人类思想的荣耀。我们还没有为它进化出一个目的地。当我们成为技术智人时,我们迫切需要定义我们物…

大模型时代下,普通科研人怎么办?

本文转载自微信公众号「计算机视觉工坊」,一个定期分享SLAM与自动驾驶干货知识的公众号,推荐大家关注。点击下方,即可。 众所周知,随着ChatGPT的爆火,AI全面进入大模型时代,NLP、CV大有统一之势,回顾发布的各种大模型,Google BARD,openAI的GPT,Meta的SAM,百度的文心…

火山语音丨AI创作惊艳四方 诸多挑战仍在路上

2022年8月,一幅名为《太空歌剧院》的数字画作获得冠军同时引发了巨大争议,AIGC(AI产生内容:AI-Generated Content)出圈的事件便频频出现在大众视野。同年11月30日OpenAI发布的聊天机器人模型ChatGPT免费开放&#xff0…

大咖说丨云计算:数字世界的“中枢神经”

随着数字化转型进程加速,云计算作为重塑商业模式、加速数字经济发展的关键引擎,其重要性愈发凸显。未来已来,身处数字宇宙中,云计算的角色又将如何转变?近日,中国信息通信研究院云计算与大数据研究所副所长…

去除el-tabs的底部灰色横线

::v-deep .el-tabs__nav-wrap::after {height: 0px;}

Midjourney摄影真人风,超高清图片一篇足够

欢迎小伙伴光临,本博主打的就是一个真实,关注点赞不迷路,毫无保留奉献,欢迎大家来探讨,以上图片均是万能咒语篇出品。 有些小伙伴感觉我的咒语水分很大,出不来效果,如果出不来效果的&#xff0c…

一文学会Anaconda!

我使用的pytoch版本: conda install pytorch1.13.1 torchvision0.14.1 torchaudio0.13.1 pytorch-cuda11.7 -c pytorch -c nvidia安装放后面了,参考https://blog.csdn.net/wq_ocean_/article/details/103889237 1. 使用conda进行python环境管理 1. 查…

新版Bing,翻车了?国内版ChatGPT首发战,打响;L5级仍是梦,特斯拉因自动驾驶市值蒸发2600亿...

本周AI产业界又有哪些新鲜事? ChatGPT 引入ChatGPT的的新版Bing,翻车了? 在微软将引入ChatGPT的新版Bing发布之后,不到48小时便有超过100万人申请使用,全球下载量一夜之间暴增10倍。不得不说,微软此举确实达…