高级分布式系统期末总结

第三章:

1.进程与线程的关系,线程实现方式

(1)进程是资源分配的基本单位,线程cpu调度的基本单位。
(2)线程切换系统开销比进程小。
(3)进程之间完全独立,而线程没有独立地址空间。
(4)进程可以有多个线程,但线程只属于一个进程。
线程实现方式:用户将线程,内核级线程,用户级和内核级的混合形式

2.分布式透明性的类型以及特点

a) 类型:
访问透明性:客户端无需知道远程服务器的位置和标识,只需通过逻辑名称进行访问。
定位透明性:客户端无需关心服务器的物理位置,系统能够动态地定位服务器并提供服务。
迁移透明性:当服务器从一个位置迁移到另一个位置时,客户端无需进行任何更改。
复制透明性:当服务器有多个副本时,客户端无需知道哪个副本正在提供服务,系统能够确保数据的一致性和完整性。
故障透明性:当服务器出现故障时,系统能够透明地切换到其他服务器,确保服务的连续性。
b) 特点:
简化客户端编程:通过隐藏底层通信和服务器分布的细节,开发人员可以更容易地编写和维护客户端应用程序。
提高系统灵活性:当服务器位置、数量或配置发生变化时,客户端无需进行更改,从而提高了系统的灵活性和可扩展性。
优化性能:分布透明性允许系统根据当前的负载和网络条件,动态地选择最佳的服务器进行通信,从而优化性能。

3.服务器集群定义、逻辑上分为三层、主要任务

服务器集群只是一组经网络连接的机器,其中每台机器运行一个或多个服务器。
第一层是逻辑交换机,由它分配客户请求给服务器,其主要任务是处理客户端请求,并分发请求到集群中的后端服务器。
第二层是应用/计算服务器层,也称为中间层,其主要任务是执行应用程序逻辑和处理业务逻辑。
第三层是分布式文件/数据库系统层,负责存储和管理数据,这一层通常包括一个或多个数据库服务器节点,他们托管数据库系统,通常是整个服务器集群中最稳定的部分,需要备份和监控以确保数据完整性。

4.代码迁移的原因

(1)提升性能:如果把进程由负载较重的机器上转移到负载较轻的机器上去,就可以提升系统的整体性能。把服务器的一部分迁移到客户端,可以避免在网络上传输大量的较小消息,这样客户可以获得更好的性能,服务器花在处理和通信上的时间也会更少。
(2)提高灵活性:如果代码可以在不同的机器之间移动,就可以动态的配置分布式系统。客户能够动态下载与特定服务器所需的软件(提高灵活性)。

第四章

1.持久通信、瞬时通信、异步通信、同步通信

持久通信:提交传输的消息一直由通信中间件存储,直到该消息被传送给接收方为止。
瞬时通信:通信系统只有在发送和接收应用程序正在运行时才存储消息。
异步通信:发送方在提交要传输的消息后立即往下进行,消息在提交后立即由中间件(临时)存储起来。
同步通信:发送方将被阻塞,直到知道其请求被接受以后。

2.同步RPC和异步RPC

同步RPC:客户端在发送请求后会阻塞,直到收到服务器的响应,在收到响应之前,不能执行其他操作,效率较低。
异步RPC:客户端在发送请求后不会阻塞,可以继续执行其他操作,提高了系统的整体吞吐量。

3.中继器在消息队列系统中的作用

a) 构建可扩展的消息队列系统,支持动态路由,减少手动配置的复杂性。
b) 允许对消息进行二次处理,如日志记录、安全或容错处理。
c) 扮演网关的角色,将消息转换为接收方能够理解的格式。
d) 支持多播功能,将消息发送到多个接收队列。

4.QoS需求可以转化的特性和改进

特性:
1)数据传输所要求的比特率
2)创建会话的最大延时
3)端到端的最大延时
4)最大延时抖动
5)最大往返延时
改进:
1) 网络架构层面:采用分层架构优化带宽分配;引入软件定义网络改善延迟和抖动
2) 协议和应用层面:协议优化提升带宽和延迟性能;应用层缓存和预取策略改善延迟和抖动

5.覆盖网络构建的主要方法,区别

第一种:结点本身直接组织成树,这意味着每对结点之间只有唯一一条路径;
第二种:结点组织成一个网状网络,其中的每个结点都有多个邻点。
这两种方法的区别是后者能提供更高的健壮性,如果某个连接断开,无需重组整个覆盖网络,仍然可以传播信息。

第五章

1.DHP算法的优势

自动负载均衡、容错能力及自我修复特性。
通过智能分配数据,确保每个节点的负载大致相等,有效避免热点问题,提升整体效率。

2. unix系统中如何查找挂载点

使用挂载表,它包含了一个指向挂载点的入口。这意味着当查找一个挂载点的时候,我们需要遍历挂载表来找到与挂载点相匹配的入口。

3.gossiping特点

高效性,容错性,可扩展性

4. 语义覆盖网络使用分布式搜索技术

语义覆盖网络是一种在覆盖网络基础上,考虑了语义信息的网络结构。它通过节点之间的语义关联构建网络,使得具有相似语义内容的节点相互连接。
利用分布式搜索系统,基于属性的命名系统逐步取代了名称解析,在语义覆盖网络中使用了这种方法,在语义覆盖网络中,结点维护了一个有关其他结点的本地列表,这些结点在语义上有类似的内容。
通过首先查询紧接着的邻接点,只有在此没有找到后继者之后才部署广播,这些语义列表就可以实现高效搜索。
分布式搜索技术在语义覆盖网络中的实现方式:基于分布式哈希表的搜索;基于语义路由的搜索
使用分布式搜索技术的特点:
a) 分布式查询:能够在多个节点间分发查询,而不依赖于中心服务器
b) 语义层次查询:节点不仅依赖于内容的字面匹配,还使用语义相似度来进行索引和查询
c) 高效的匹配机制:采用类似gossiping的方法,通过节点间的信息传播来同步语义信息
d) 容错性和可扩展性:即使某些节点失效,网络仍然能通过其他节点进行查询和信息检索,这样的机制可以在大规模系统中有效进行语义查询和匹配。

5. 无层次命名系统 5 种实体定位方法

广播和多播、转发指针、基于宿主位置、分布式散列表、分层搜索树

第六章

1. 物理时钟、中天、太阳日、太阳秒

物理时钟:一种利用物理原理来计量时间的装置,比如计算机的计时器通常是一个加工过的石英晶体。
中天:太阳到达天空中它出现的最高点
太阳日:两次连续的太阳中天之间的时间为一个太阳日
太阳秒:1/86400个太阳日(因为每天有24个小时,每小时有3600秒)

2. GPS 定位需要卫星数目

GPS 定位系统的空间部分是由 24 颗 GPS 工作卫星所组成,这些卫星分布在 6 个倾角为 55° 的轨道上绕地球运行。这样的星座布局可以确保在地球上的大部分区域,用户在任何时间都能接收到至少 4 颗卫星的信号,从而实现准确的定位。
使用4个卫星,GPS度量也可以给出实际时间,但是这种并不精确,因为GPS没有考虑闰秒。

3. 四种算法的比较

算法类型 每次进/出需要的消息数 进入前的延迟(按消息数) 问题
集中式 3 2 协作者崩溃
非集中式 3mk (k=1,2,…) 2m 会发生饥饿,效率低
分布式 2(n-1) 2(n-1) 任何进程崩溃
令牌环 (1~∞) (0~n-1) 令牌丢失,进程崩溃

4. 无线选举算法的挑战

a) 消息传递的不确定性:信号干扰问题(无线网络中,存在多种信号干扰源)、信道衰弱现象、隐藏终端和暴露终端问题
b) 节点动态性:节点具有移动性;无线节点可能随时加入或者退出网络
c) 资源限制:能源消耗(依靠电池供电,能源有限);带宽限制(选举算法产生的大量消息可能会占用带宽资源)

5. 大型系统选举超级点的需求

a) 一般的结点访问超级点的延时要低
b) 超级点应平均的分布在覆盖网络中
c) 相对于覆盖网络中的所有结点,应有一部分预定义的超级点
d) 每个超级点无需为固定数目的一般结点服务

第七章

1. 强一致性、弱一致性、顺序一致性、因果一致性

强一致性:所有副本在任何时候都返回相同的数据。典型场景是银行交易。
弱一致性:系统允许暂时的数据不一致,只要求在最终达到一致。
顺序一致性:所有操作按照单一的全局顺序执行,所有副本看到的操作顺序一致。
因果一致性:如果两个操作之间存在因果关系,则所有副本上的顺序必须一致。

2. 分布式系统数据复制的原因

可靠性:通过创建多个副本,能够避免单点故障导致的数据丢失,提高系统的可用性。
性能:通过数据复制,可以将副本分布在多个节点上,使得用户可以访问离自己最近的副本,从而减少延迟并提高响应速度。

3. 写读一致性需满足的条件

一个进程对数据项x执行一次写操作的结果总是会被该进程对x执行的后续读操作看见。

4. 与基于推式方法结合时,多播常常可高效传播更新

在这种情况下,一个决定向其他一些服务器推出更新的服务器仅使用一个单一的多播组来发送它的更新。
为什么他们两个结合能够高效传播
a) 减少冗余数据传输:传统使用单播时,若每个接收者都单独请求更新,服务器会分别向每个接收者发送相同的数据,会造成大量的冗余数据传输,在多播中,服务器只需要将更新信息发送给一个特定的多播组,所有订阅该组的接收者都能收到相同的数据,减少了网络带宽的使用
b) 推式方法的主动传播:服务器主动将更新推送给客户端,与拉式方法相比,减少了响应延迟
c) 降低延迟:推式方法通常具有较低的延迟,结合多播后,所有订阅者都能几乎同时接收到更新,从而减少了传播延迟,尤其在大规模分布式系统中

5. 基于主备份的协议(两种,及其区别)

远程写协议:写操作被发送到远程主服务器。读操作在本地服务器即可。远程写协议启动更新的进程在被允许继续执行前,可能需要等待相对较长的时间。
本地写协议:读写都在本地服务器。写进程在哪,主服务器就移动到哪,需要被更新的数据只存在一份,也同时移动到哪。本地写协议可以在本地执行多个连续的写操作,而读操作仍可以访问其本地副本。

第八章

1. 分布式系统容错性

容错性是指系统在遇到故障时,仍然能够继续正常运行的能力。它通常通过冗余、错误检测、恢复机制等手段实现,确保系统在节点失效、网络分区或其他故障情况下的可用性和一致性。

2. 分布式系统常用容错机制

数据冗余:通过数据备份和副本管理,确保在节点失效时数据不会丢失。
心跳检测:定期检查节点状态,及时发现故障。
重试机制:在操作失败时自动重试,减少偶发错误的影响。
事务管理:使用分布式事务保证数据一致性,确保所有操作要么全部成功,要么全部回滚。

3. 通信通道故障

崩溃性故障、遗漏性故障、定时故障、随意性故障。

4. 分布式系统节点故障后的数据恢复

数据重建:从其他健康节点的副本中重建故障节点的数据。
快照和日志:利用系统快照和事务日志,恢复到故障前的状态。
负载均衡:在恢复后,重新分配工作负载,确保系统性能恢复。
验证和一致性检查:确保恢复的数据一致性,进行必要的数据验证。

5. 客服端崩溃“孤儿”计算引起的问题和解决方法

问题:
a) 浪费cpu周期。
b) 锁定文件或占用有价值的资源。
c) 如果客户重启并再次进行RPC,则孤儿的结果会立即返回,造成结果的混淆。
解决方法:
a) 孤儿消灭:在客户端存根(stub)发送RPC消息前进行日志记录,在客户端重启后,检查日志并明确杀死孤儿
b) 再生:将时间分为顺序编号的时期,当客户端重启时,广播一个新时期的开始消息,接收到此消息的服务器将杀死与特定客户端相关的远程计算
c) 优雅再生:在时期广播到达时,服务器尝试定位远程计算的拥有者,只有在无法找到时才杀死计算。
d) 到期:每个RPC被给定一个标准时间量T来进行工作,如果超时且没有结束,则必须显式请求更多时间。在客户端崩溃后等待时间T后,可以确认放弃所有孤儿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值