分布式系统——分布式共享内存中的颠簸
在本文中,我们将了解分布式系统中的 Thrashing。但在此之前,让我们了解什么是分布式系统以及为什么会发生抖动。简单来说,分布式系统是位于不同位置并链接在一起的计算机或设备网络。这些分布式计算机中的每一个都共享相同的状态。假设我们在 ABC 银行的德里分行开设了一个银行账户。然后这个帐户将反映在全国和世界各地的 ABC 分支机构的所有分支机构中。
在早期,只有一台机器来保存数据库。但是现在由于分布式系统,我们可以将信息保存在任何设备上——并且它和更改将在任何地方进行。因此,我们可以看到分布式系统的重要性,因为我们所有的信息都存储在其中。对于进程间通信,经常使用共享内存。分布式共享内存用于允许不同计算机上的应用程序一起工作并共享内存。分布式共享内存可能会遇到“抖动” 。尽管多个任务修改不同的数据片段,但大部分工作都消耗在数据同步上。结果是每个过程所取得的进步非常小。
最重要和未解决的问题之一是并发程序调度。相关的问题是——如何正确利用闲置资源以及如何在活动之间平等地共享机器?进程的本地调度是一种简单且可扩展的解决方案。在此调度中,每个工作站分别计划其活动。然而,在分布式系统中,还需要在多处理器的所有节点上同步协调并发工作。由于 CPU 抖动,组成并行工作的进程如果没有被共同调度,可能会经历显着的通信延迟。抖动会导致过多的传输延迟。如果调度不同步,可能会导致效率低下。通过以微秒级延迟的高速网络连接设备,协同调度能力似乎是确定吞吐量的基本要素。
颠簸是当系统花费大部分时间将共享数据块块从一个节点传输到另一个节点时发生的过程,与执行应用程序进程的有用工作所花费的时间相比。如果不小心处理抖动,则会大大降低系统性能。
可能导致颠簸的情况:
- 乒乓效应 - 当进程在两个或多个节点上进行交错数据访问时会发生这种情况,它可能导致数据块从一个节点快速连续地来回移动到另一个节点,称为乒乓效应,
- 当具有只读权限的块被复制后反复失效时。这是由于参考的局部性差造成的。
- 当多个节点同时修改数据时。
如何控制抖动?
1.提供应用程序控制的锁
- 数据被锁定一小段时间,以防止节点访问数据,从而防止抖动。
- 对于这种方法,应用程序控制的锁可以与每个数据块相关联。
2. 在最短的时间内(t)将一个块钉在节点上:
- 在将块分配给节点后经过最少时间 (t) 之前,不允许将块从节点中取出。
- 根据过去的访问模式,时间 t 可以静态或动态固定
- 这种方法的问题是固定 t 的值
- 有两种方法可以调整 t 的值。它们如下:
- 基于块的过去访问模式,可以调整 t 的值。和,
- 基于等待访问该块的进程队列的长度。
3. 根据共享数据使用模式调整一致性算法
- 具有不同特性的共享数据的不同一致性协议可用于最小化抖动。