Progress-Space Tradeoffs in Single-Writer Memory Implementations
为共享内存分布式系统设计的大多数算法都假定为单写入器多读取器(SWMR)设置,其中每个进程都提供了一个唯一的所有进程都可读的寄存器。在一个系统中,计算是由来自一个非常大的(可能是无界的)潜在参与者的集合的有限数量的进程来执行的,SWMR内存的假设不再是合理的。如果只提供有限数量的多写多读(MWMR)寄存器,我们不能依赖于一个先验的进程分配寄存器。在该设置中,模拟SWMR存储器,或等同地,确保稳定写入(即,每个写入的值都保持在存储器中)。在本文中,我们提出了一个SWMR模拟,适应所需的进展条件的MWMR寄存器的数量。对于任何给定的k从1到n,我们提出了一种算法,只使用n+k-1寄存器来模拟一个k锁自由SWMR存储器。我们还给出了2-锁自由情况下所需的n+1个寄存器的匹配下界,这支持了我们的假设,该算法是空间最优的。我们的下界对于2-障碍自由的严格较弱的进展条件成立,这表明k-障碍自由和k-锁自由SWMR模拟的空间复杂度可能一致。
2017-11-27 cs.DC
Lower Bounds for Shared-Memory Leader Election under Bounded Write Contention
针对随机无障碍算法,给出了具有单写多读(SWMR)寄存器的异步共享内存模型中leader选举的单步复杂度的严格对数下界.该方法扩展到下限的随机无障碍算法使用多写寄存器下有界写并发,显示之间的权衡的领导者选举算法的单步复杂性,和最坏情况下的竞争引起的处理器在执行。
2022-03-25 cs.DC
Anonymous Obstruction-free $(n,k)$-Set Agreement with $n-k+1$ Atomic Read/Write Registers
$k$ -集合一致性问题是一致性问题的推广。即,假设每个过程提出一个值,每个非故障过程必须决定一个值,使得每个决定的值被提出,并且不超过$k$不同的值被决定。这是一个难题,因为在异步系统中,一旦$k$或多个进程崩溃,就无法解决这个问题。规避这种不可能性的一种方法是削弱其终止属性,要求进程只有在足够长的时间内单独执行时才终止(决定)。这就是著名的无障碍进展条件。考虑一个由$n$ { \it anonymous asynchronous}进程组成的系统,其中进程之间通过原子寄存器进行通信,并且其中任意数目的进程都可能崩溃,本文提出并解决了一个具有挑战性的公开问题:设计一个仅使用$(n-k+1)$原子寄存器的无障碍$k$ -集合协商算法.从共享内存成本的角度来看,该算法是迄今为止已知的最佳算法,从而建立了解决问题所需的寄存器数量的新上限(相对于先前的上限,其增益为$(n-k)$)。该算法,然后扩展到解决重复版本的$(n,k)$ -集协议。由于它是最佳的原子读/写寄存器的数量,该算法关闭了以前建立的下/上界的差距为匿名和非匿名版本的重复$(n,k)$ -集协议问题。最后,对于$1 \leq x\leq k \textless{} n$,还描述了适合于$x$的推广--无障碍,其仅需要$(n-k+x)$原子寄存器。
2015-07-02 cs.DC
A Wait-free Multi-word Atomic (1,N) Register for Large-scale Data Sharing on Multi-core Machines
我们提出了一个多字原子(1,N)寄存器的多核机器利用读-修改-写(RMW)指令协调的作家和读者在一个等待的方式。我们的建议,称为匿名读者计数(ARC),使大规模的数据共享,承认高达$2^{32}-2$并发读者在现成的64位机器,而不是最先进的RMW为基础的方法,这是有限的58读者。此外,ARC在访问寄存器内容时避免了寄存器内容的多个副本--这影响了基于单个字的原子读/写操作的经典寄存器算法。因此,它允许在寄存器大小方面具有更高的可扩展性。此外,ARC通过在读操作的情况下对RMW指令的适当限制,以及通过支持读操作的恒定时间和写操作的摊销恒定时间,显式地减少和提高性能。我们的寄存器算法的正确性的证明也提供了,连同实验数据与文献建议的比较。除了在物理平台上评估ARC之外,我们还在虚拟化基础设施上进行了实验,这表明ARC提供的无等待同步相对于CPU窃取时间的弹性,适合于更现代的范例,如云计算。
2017-07-24 cs.DC
Process-Algebraic Models of Multi-Writer Multi-Reader Non-Atomic Registers
本文提出多写者多读者安全、正则和原子寄存器的进程代数模型,并通过模型检测分析著名互斥算法在放宽原子性要求下的鲁棒性,驳斥了部分算法的既有正确性论断。
2023-07-11 cs.DC cs.LO
Mutex-based Desanonymization of an Anonymous Read/Write Memory
匿名共享内存是一种内存,其中进程对同一个共享读/写寄存器使用不同的名称。作为示例,由进程$p$命名为$A$的共享寄存器和由另一进程$q$命名为$B$的共享寄存器可以对应于完全相同的寄存器$X$,并且类似地,对于可以对应于相同寄存器$Y\neq X$的$p$处的名称$B$和$q$处的名称$A$。因此,各进程在登记册名称上始终存在分歧。这种新的匿名概念最近由G. Taubenfeld(PODC 2017),他提出了几种内存匿名算法和不可能性结果。本文介绍了一个新的问题(新的我们的知识),包括在“去匿名化”的匿名共享内存。为此,提出了一种算法,该算法从由$m$匿名读/写原子寄存器(即,在它们的名称上没有先验的一致性),允许每个进程计算局部寻址映射,使得所有进程在每个寄存器的名称上一致。所提出的构造是基于一个底层的死锁无互斥算法$n\geq 2$进程(最近提出的一份文件中合著的本文的一些作者),因此继承了其必要和充分条件的大小$m$的匿名存储器,即$m$必须属于集合$M(n)=\{m:~$,使$\forall~ \ell: 1<\ell \leq n:~ \gcd(\ell,m)=1\}\setminus \{1\}$。这个算法也是对称的,因为进程标识只能通过相等来比较,它需要所有进程的参与,因此它可以是系统初始化的一部分。最后但并非最不重要的是,该算法具有一流的值得注意的属性,即,它的简…
2019-03-28 cs.DC
The Life in 1-Consensus
本文介绍了一种确定性共享内存对象--原子写入和下一次读取($\text{WRN}_{k}$),它对任何$k\ge3$都比读写寄存器强,但不能实现$2$ -处理器一致性。特别是,它驳斥了猜想声称,每个确定性对象的共识数$1$是计算等价于读写寄存器。
2017-09-27 cs.DC
On Register Linearizability and Termination
在一项开创性的工作中,Golab等人表明,如果我们将原子对象替换为可线性化的对象,那么使用原子对象的随机算法可能会失去一些属性。不知道可能丧失的属性是否包括终止的重要属性(概率为1)。在本文中,我们首先表明,对于随机算法,终止确实可以丢失。Golab等人还引入了强线性化,并证明了强线性化对象可以像原子对象一样使用,即使对于随机算法也是如此:它们保持了算法的正确性,包括终止性。不幸的是,在一些重要的情况下,不可能实现强线性化。具体地,Helmi等人的MWMR寄存器不具有来自SWMR寄存器的强线性化实现。因此,我们提出了一种新的寄存器线性化,称为写强线性化,这是严格强于线性化,但严格弱于强线性化。我们证明了一些随机算法,未能终止与线性化寄存器,工作与写强线性化的。换句话说,存在可线性化性不足但可写入强线性化性的情况。与上述不可能性结果相反,我们证明了写强线性化MWMR寄存器是可以从SWMR寄存器实现的。实现写强线性化,但是,比实现线性化更难:我们给出了一个简单的实现MWMR寄存器从SWMR寄存器,我们证明了这种实现是线性化的,但不写强线性化。最后,我们证明了任何线性实现的SWMR寄存器一定写强线性化,这适用于共享内存,消息传递,和混合系统。
2021-02-26 cs.DC cs.DS
Election in Fully Anonymous Shared Memory Systems: Tight Space Bounds and Algorithms
本文讨论由$n$异步进程组成的完全匿名系统中的选举,这些进程通过原子读写寄存器或原子读-修改-写寄存器进行通信。给定一个整数$d\in\{1,\dots, n-1\}$,考虑两个选举问题:$d$ -选举(至少一个且至多$d$进程被选举)和精确$d$ -选举(精确$d$进程被选举).完全匿名意味着进程和共享寄存器都是匿名的。内存匿名性意味着进程可能对共享寄存器的名称不一致。也就是说,相同的寄存器名$A$可以表示用于不同进程的不同寄存器,并且由进程使用的寄存器名$A$和由另一进程使用的寄存器名$B$可以寻址相同的共享寄存器。
2022-03-06 cs.DC
Reliable Self-Stabilizing Communication for Quasi Rendezvous
本文提出了三个基本的公平和可靠的链路通信原语的自稳定协议。我们假设一个链接寄存器通信模型下的读/写原子,其中每个进程可以读取,但不能写入其邻居的寄存器。第一个原语保证任何进程只有在其所有邻居都读取了前一个值之后才在其寄存器中写入新值,无论进程的动作的初始调度如何。第二个原语通过使用交替位协议实现了“弱会合”通信机制:每当一个进程连续将n个值(可能是相同的值)写入寄存器时,每个邻居都保证从寄存器中读取每个值至少一次。在前一个协议的基础上,第三个原语实现了一个“准会合”:换句话说,这个原语进一步确保了两个写操作之间只存在一个读操作所有协议都是自稳定的,并且在异步任意网络中运行。本文的目标是通过一个单独的过程来处理每个原语,这可以在更复杂的自稳定协议中用作“黑盒”。
2010-05-31 cs.DC
Efficient Wait-Free Linearizable Implementations of Approximate Bounded Counters Using Read-Write Registers
本文针对有界计数器提出三种基于读写寄存器的无等待线性化近似实现算法,通过放宽精度要求使读取步复杂度相较精确计数器实现获得指数级改进,其中两种算法达到渐近最优。
2024-02-21 cs.DC
Simulating a Shared Register in a System that Never Stops Changing
模拟一个共享寄存器可以掩盖为异步消息传递系统设计算法的复杂性,因为它允许它们运行为更简单的共享内存模型设计的算法。通常,此类模拟会在多个服务器中复制寄存器的值,并要求读取器和写入器与大多数服务器进行通信。这种方法在静态系统中的成功,其中节点(读取器,写入器和服务器)的集合是固定的,已经激发了几个类似的动态系统的模拟,其中节点可以进入和离开。然而,现有的模拟需要假设系统最终停止变化足够长的时间,或者系统的大小是有界的。本文首次模拟了易崩溃的异步系统中的原子读/写寄存器,该寄存器可以改变大小并承受节点不断进出。模拟允许系统保持变化,前提是在固定时间间隔内进入和离开的节点数量至多是当前系统大小的恒定分数。只要系统中故障节点的数量至多是当前系统大小的一个常数,模拟也容忍节点崩溃。
2017-08-10 cs.DC
Optimal Memory-Anonymous Symmetric Deadlock-Free Mutual Exclusion
匿名共享内存的概念(最近在PODC 2017中引入)认为进程对同一内存位置使用不同的名称。因此,进程之间在地点名称上存在永久性的分歧。在这种情况下,PODC论文提出了一个对称的无死锁互斥(互斥)算法的两个进程和一个必要条件的大小$m$的匿名存储器的存在对称的无死锁互斥算法在$n$进程系统。这个条件声明$m$必须大于$1$,并且属于集合$M(n)=\{m:\forall~\ell:1<\ell\leq n:~\gcd(\ell,m)=1\}$(对称意味着,虽然每个进程都有自己的标识,但进程标识只能与相等进行比较)。本文回答了几个公开的问题有关的对称无死锁互斥的$n$进程系统($n\geq 2$),其中进程通过$m$寄存器进行通信。首先提出了两种算法。第一种认为寄存器是匿名读/写原子寄存器,并且适用于任何大于$1$并且属于集合$M(n)$的$m$。因此,它表明,这个条件对$m$是必要的和充分的。第二个算法考虑匿名读/修改/写原子寄存器。它假定$m\in M(n)$。这些算法在设计原则和成本上有所不同(以必须包含进程标识以允许其进入临界区的寄存器数量来衡量)。本文还证明了条件$m\in M(n)$是在匿名读/修改/写原子寄存器上实现无死锁互斥的必要条件。因此,当$m>1$,$m\in M(n)$是解决无死锁互斥所需的匿名共享内存大小的严格表征时,匿名寄存器读/写或读/修改/写。
2018-10-08 cs.DC
The Synchronization Power of Auditable Registers
本文研究可审计寄存器的同步能力,证明原子审计可解决共识,并给出不同读者/审计者数量下的实现,同时提出可用普通读写实现的常规审计定义。
2023-08-31 cs.DC
Two-Bit Messages are Sufficient to Implement Atomic Read/Write Registers in Crash-prone Systems
原子寄存器无疑是计算科学中最基本的对象。它们在一个n进程异步消息传递系统上的实现受到了很多关注。已经表明,t \textless{} n/2(其中t是可能崩溃的进程的最大数量)是在易崩溃的异步消息传递系统之上构建原子寄存器的必要且充分的要求。考虑到这种情况,本文提出了一种算法,实现了一个单写多读原子寄存器只有四个消息类型,其中没有消息需要携带控制信息,除了它的类型。因此,两个比特足以捕获由所有实现消息携带的所有控制信息。此外,两种类型的消息需要携带数据值,而另外两种类型的消息根本不携带值。据我们所知,该算法是第一个具有这样的最优性质的消息携带的控制信息的大小。从时间复杂度的角度来看,它也特别有效。
2016-02-08 cs.DC cs.IT math.IT
Read-Modify-Writable Snapshots from Read/Write operations
Universidad Nacional Autónoma de México (UNAM)(墨西哥国立自治大学)
本文提出两种仅使用读/写操作的可读写快照算法,分别适用于有限和无限并发性模型。
2026-02-18 cs.DC
Space Bounds for Reliable Multi-Writer Data Store: Inherent Cost of Read/Write Primitives
来自易出错组件的可靠存储仿真已经成为现代存储服务和应用程序的算法基础。大多数现有的可靠存储仿真都是从支持任意读-修改-写原语的存储服务构建的。由于这些原语通常不会被预先存在的或现成的组件(如云存储服务或网络连接磁盘)公开,因此很自然地会问它们是否确实对有效的存储仿真至关重要。在本文中,我们肯定地回答了这个问题。我们表明,放松底层存储,只支持读/写操作导致线性爆破仿真空间的要求。我们还表明,空间复杂度是不适应并发,这意味着存储不能可靠地回收,即使在顺序运行。在积极的一面,我们表明,比较和交换原语,这是常见的许多现成的存储服务,可以用来模拟一个可靠的多作家原子寄存器与恒定的存储和自适应时间复杂度。
2015-08-15 cs.DC
Fully Read/Write Fence-Free Work-Stealing with Multiplicity
工作窃取是一种以分布式方式实现动态负载均衡的流行技术。在这种方法中,每个进程都拥有一组必须执行的任务。集合的所有者可以将任务放入其中,也可以从其中获取任务来执行它们。当一个进程的任务用完时,它不是处于空闲状态,而是成为一个小偷,从受害者那里窃取任务。因此,工作窃取算法提供了三个高级操作:Put和Take,只能由所有者调用,以及Steal,可以由小偷调用。设计工作窃取算法的主要目标之一是使Put和Take尽可能简单和高效。不幸的是,已经表明,标准异步模型中的任何工作窃取算法必须使用昂贵的写后读同步模式或原子读-修改-写指令,这在实践中可能是昂贵的。因此,先前的研究已经提出了幂等工作窃取,一种放松,其中有没有读-修改-写原子指令和写后读同步模式的Put和Take算法;然而,Put在写指令之间使用围栏,Steal在读指令之间使用比较和交换和围栏。在TSO模型中,其中Write(resp.读)指令不能被重新排序,已经提出了完全无围栏的工作窃取算法,其Put和Take具有类似的属性,但Steal使用Compare&Swap或锁。
2021-02-22 cs.DC
Auditable Register Emulations
数据泄露的普遍存在增强了审计存储系统的重要性。在这项工作中,我们开始研究可审计的存储仿真,它提供了审计员报告以前执行的读取寄存器的能力。我们精确地定义了可审计寄存器的概念及其属性,并建立了严格的界限和不可能的结果,在存在故障的存储对象的可审计存储模拟。我们的配方考虑loggable读写寄存器,安全地存储数据,使用信息分散和支持快速读取。在这样的情况下,给定故障存储对象的最大数量~$f$和恢复存储值所需的数据块的最小数量~$τ$,我们证明了:(1)如果$τ\leq 2f $,则可扩展性是不可能的;(2)实现弱形式的可扩展性需要$τ\geq 3f+1$;以及(3)更强形式的可扩展性是不可能的。我们还表明,签名读取请求克服了弱可扩展性的下限,而完全排序操作或使用非快速读取可以实现强可扩展性。
2020-05-16 cs.DC
Read-Write Memory and k-Set Consensus as an Affine Task
无等待读写存储器模型的特征在于迭代的\emph{Immediate Snapshot}(IS)任务。IS任务是\emph{affine} -它可以被定义为标准色细分的单形(子)集。已知\emph{Weak Symmetry Breaking}(WSB)的任务不能被表示为仿射任务。在本文中,我们强调的现象,一个“自然”的模型,可以捕获的迭代仿射任务,因此,由一个子集运行的迭代立即快照模型。我们表明,读写内存模型,其中,另外,$k$ -集共识对象可以使用的是,不像WSB,“自然”提出相应的简单的仿射任务捕获的一个子集的$2$轮IS运行。我们的研究结果意味着第一个组合特征的模型配备了抽象的读写内存,适用于通用的任务。
2016-10-05 cs.DC
The read/write protocol complex is collapsible
著名的\emph{asynchronous computability theorem}提供了一类决策任务的特征,这些任务可以通过异步进程以无等待的方式解决,这些进程通过写入和获取共享内存的原子快照进行通信。已经提出了几种变化的模型(即时快照和迭代即时快照),所有等同的决策任务的无等待解决方案,尽管事实上,从不同的模型产生的协议复杂的结构上是不同的。这些快照协议复合物的拓扑和组合特性进行了详细的研究,提供了解释为什么异步可计算性定理在所有的模型。在现实中,并发系统不提供具有快照操作的进程。相反,快照是使用读写单个共享内存位置的操作(通过无等待协议)实现的。因此,读/写协议在计算上也等同于快照协议。然而,读/写协议复合体的结构尚未被研究。在本文中,我们表明,读/写迭代协议复杂的是可折叠的(因此收缩)。此外,我们证明了一个分布式协议,等待免费实现原子快照的效果是执行崩溃。
2015-12-17 cs.DC
Atomic Read/Write Memory in Signature-free Byzantine Asynchronous Message-passing Systems
本文提出了一种无签名的分布式算法,它在一个$n$进程异步消息传递系统上建立一个原子读/写共享存储器,在该系统中,多达$t<n/3$进程可以提交Byzantine故障。从概念的角度来看,该算法被设计为尽可能接近Attiya,Bar-Noy和Dolev(JACM 1995)提出的算法,该算法在$n$进程异步消息传递系统中构建原子寄存器,其中多达$t<n/2$进程可能崩溃。所提出的算法特别简单。它不使用密码学来处理拜占庭进程,并且从$t$弹性的角度来看($t<n/3$)是最佳的。读操作需要$O(n)$消息,写操作需要$O(n^2)$消息。
2015-12-07 cs.DC
Relaxed Queues and Stacks from Read/Write Operations
考虑到异步共享内存系统中,任何数量的进程可能会崩溃,这项工作确定并正式定义放松队列和堆栈,可以是非阻塞或等待自由,同时只使用读/写操作实现。集合线性化和区间线性化被用来形式化地描述松弛,并精确地识别保持原始顺序行为的执行子集。松弛允许不同的操作多次返回一个项目,但仅限于并发的情况;我们称这样的属性为多重性。堆栈实现是无等待的,而队列实现是非阻塞的。区间线性化用来描述一个具有多重性的队列,另外一个放松是出队操作可以返回弱空,这意味着队列可能是空的。本文提出了一种并发队列的读/写无等待区间线性化算法。据我们所知,这项工作是第一个提供多重性和弱空性概念的形式化,只能在读/写寄存器上实现。
2020-11-04 cs.DC
A self-stabilizing algorithm for maximal matching in link-register model in $O(nΔ^3)$ moves
在匹配问题中,每个节点都有一个指向它的一个邻居或$null$的指针,当每个节点指向一个自己指向它的邻居时(它们被称为已婚),或者指向$null$时,计算最大匹配,在这种情况下,没有邻居也可以指向$null$。本文提出了一种自稳定的分布式算法来计算在读/写原子下的链路寄存器模型中的最大匹配,其复杂性为{ $O(nΔ^3)$ }在对抗分布式守护进程下移动,其中$Δ$是图的最大度。
2017-09-14 cs.DC
A Software-based NVM Emulator Supporting Read/Write Asymmetric Latencies
非易失性存储器(NVM)是一种很有前途的低能耗、大容量计算机主存技术。然而,NVM装置的特性往往与DRAM的特性根本不同(即,当前用于主存储器的存储器件),这是因为存储单元的原理不同。通常,诸如PCM和ReRAM的NVM设备的写入延迟比其读取延迟高得多。读/写延迟的不对称性可能会显著影响应用程序的性能。为了分析运行在基于NVM的主存上的应用程序的行为,由于商业NVM产品的数量有限,大多数研究人员使用基于软件的仿真工具。然而,这些现有的仿真工具太慢,无法仿真大规模的,现实的工作负载或过于简单,调查的细节,应用程序的行为与非对称读/写延迟的NVM上。因此,本文提出了一种新的NVM仿真机制,不仅重量轻,但也知道在基于NVM的主存储器的读/写延迟间隙。我们实现了所提出的机制的原型为英特尔CPU处理器的Haswell架构。我们还评估了其准确性,并进行了实际基准的案例研究。实验结果表明,该原型系统能够准确地模拟NVM主存的写延迟,其写延迟范围为200 ~ 1000 ns,误差范围为0.2%~ 1.1%。我们证实,使用我们的仿真器使我们能够成功地估计基于NVM的主存的实际工作负载的性能,而现有的轻量级仿真模型则会错误估计。
2019-08-02 cs.DC
On the Practicality of Atomic MWMR Register Implementations
多写入器/多读取器(MWMR)原子寄存器实现在异步、易崩溃的消息传递环境中提供精确的一致性保证。快速MWMR原子寄存器实现首先在Englert等人2009年引入。快速性是以不牺牲正确性的单轮读写操作的数量来衡量的。然而,Georgiou等人在2011年的研究中表明,在这些实现中,降低通信成本是不够的。特别是,考虑到性能是根据由于(a)通信延迟和(b)本地计算引起的读写操作的延迟来测量的,他们引入了两种新的算法,以减少计算来交换通信。由于计算仍然是算法的一部分,有人可能会想:在实时系统中,通信和本地计算之间的权衡是什么?在这项工作中,我们进行了实验性能评估的四个MWMR原子寄存器实现:SFW从Englert等人。2009年,APRX-SFW和CWFR从Georgiou等人。2011年,和推广的传统算法Attiya等人。1996年在MWMR环境中,我们称之为SIMPLE。我们在NS 2,一个单处理器模拟器,和PlanetLab,一个行星级的实时网络平台上实现和评估的算法。我们的比较提供了一个经验的答案,上述问题,并证明了原子MWMR寄存器实现的实用性。
2012-04-09 cs.DC cs.DS
Oh-RAM! One and a Half Round Atomic Memory
在消息传递系统中模拟原子读/写共享对象是分布式计算中的一个基本问题。考虑到网络通信是最昂贵的资源,效率首先根据实现读写操作所需的通信来衡量。众所周知,涉及总共4个消息交换的2个通信往返阶段足以实现原子操作。还已知的是,在相对于副本服务器和故障的数量对读取器的数量的某些约束下,可以实现单写入器原子对象,使得每个操作涉及一个往返阶段。我们提出的算法,允许操作完成3通信交流,而不施加任何限制的读者和作家的数量。具体来说,我们提出了一个原子内存实现的SWMR设置,其中读取完成3个通信交换和写入完成2个交换。我们提出的问题是,是否有可能实现MWMR存储器的操作完成在最多3个通信交换。我们回答这个问题的否定表明,原子内存的实现是不可能的,如果读取和写入操作都需要3个通信交换,即使假设两个作家,两个读者,和一个单一的副本服务器故障。出于这种不可能的结果,我们提供了一个MWMR原子内存实现,其中读取涉及3和写入4通信交换。根据我们的不可能性结果,这些算法在通信交换的数量方面是最优的。我们对算法的正确性进行严格的推理。
2020-11-16 cs.DC
Local Read-Write Operations in Sensor Networks
由于通信错误和平台限制,设计传感器网络的协议和制定方便的编程抽象单元是具有挑战性的。本文研究了\emph{local read-write}抽象的属性和实现可靠性。本地读写的灵感来自于为共享内存多处理器架构定义的读-修改-写操作类。读-修改-写操作类在解决并发控制的一致性和相关的同步问题中是很重要的。本地读写被证明是一个原子抽象的传感器网络中的邻居状态同步。本文比较了本地读写在无线传感器网络中类似的轻量级操作,如读所有,写所有,和基于事务的抽象:对于一些乐观的情况下,本地读写是一个更有效的邻域操作。描述了一个部分实现,它表明三个结果表征操作响应:成功,失败和取消。失败响应指示操作结果可能不一致,这是操作发起方的超时事件的结果。本文提出了不同的超时值和无争用的情况下的操作性能的实验结果,一些测试也对不同的邻域大小。
2008-06-11 cs.DC cs.OS
Unleashing and Speeding Up Readers in Atomic Object Implementations
在异步、易崩溃的消息传递系统中提供原子读/写对象的有效仿真是分布式计算中的一个重要问题。通信延迟是通常支配消息传递系统的性能的因素,因此实现原子对象的算法的效率是根据每个读写操作中涉及的通信交换的数量来测量的。Attiya、Bar-Noy和Dolev的开创性成果确定了两对通信交换,或者等价地两次往返通信,就足够了。随后的研究探讨了实施的可能性,涉及不到四个交换。Dutta等人的工作表明,对于单写入器/多读取器(SWMR)设置,两个交换是足够的,只要读取器的数量相对于系统中对象副本的数量和副本失败的数量受到严格限制,并且还表明,多写入器/多读取器(MWMR)对象的两个交换实现是不可能的。后来的研究集中在提供消除对读取器数量的限制的实现,同时具有使用可变数量的通信交换(具体地,两个、三个或四个交换)的读取和写入操作。这项工作提出了两个国家的最先进的在这一领域的进展。具体而言,对于SWMR和MWMR系统的算法,其中读取操作需要两个或三个交换。这改进了先前的工作,其中读取操作需要(a)三次交换,或者(b)两次或四次交换。新算法中的读取器数量不受约束,并且写入操作与先前工作中的交换次数相同(SWMR设置为2次,MWMR设置为4次)。算法的正确性是严格论证的。
2018-03-29 cs.DC
Asynchrony from Synchrony
我们认为同步动态网络,如无线电网络可能有不对称的通信链路,并受通信,而不是处理器故障。在本文中,我们研究了最小的消息生存性,在每一轮的基础上,允许最小的全球合作,即,允许解决任何无等待读写可解决的任务。该文件完全描述了这种生存能力的要求。通过考虑在一轮中删除消息的能力有限的对手,形式化了消息的生存性。在一个方向上删除链接上的消息并不一定意味着在另一个方向上删除该链接上的消息。令人惊讶的是,存在一个最强大的对手,可以解决任何无等待的读/写任务。解决任何无等待读/写任务的任何不同的对手都是较弱的,并且任何较强的对手都不会解决任何无等待读/写任务。ABD \cite{ABD}考虑了处理器故障,得到了一个具有$n/2$弹性的对手,从而可以解决诸如$n/2$ -set-consensus等非读/写等待可解的任务。对于消息对手,我们到达了一个完全具有读写无等待能力的对手。此外,这个对手允许一个相当简单的(我们所知道的最简单的)证明,任何读/写无等待任务的协议复合体是一个细分的单纯形,最后使这个证明对没有代数拓扑先决条件的学生来说是容易获得的,或者免除立即快照复合体是一个细分的单纯形的假设。
2012-03-27 cs.DC
Efficient and Modular Consensus-Free Reconfiguration for Fault-Tolerant Storage
仲裁系统是在出现故障时实现一致和可用存储的有用工具。这些系统通常包括一组静态服务器,其提供由一组客户端访问的容错读/写寄存器。我们考虑这些系统的动态变体,并提出FreeStore,一组容错协议,模拟在动态异步系统中的进程能够加入/离开服务器设置在执行过程中的寄存器。这些协议使用了一个新的抽象称为视图生成器,捕获协议的要求,重新配置,并可以在不同的系统模型实现不同的属性。特别有趣的是,我们提出了一个重新配置协议,是模块化的,高效的,无共识和松散耦合的读/写协议,提高整体系统的性能。
2016-07-18 cs.DC
The Computational Power of Distributed Shared-Memory Models with Bounded-Size Registers
本文研究有界大小寄存器是否足以替代无界寄存器实现分布式共享内存模型的普适性,并回答在最多 t 个进程崩溃时该模型是否仍具有普适性。
2023-09-25 cs.DC
Modular Baskets Queue
本文给出了Hoffman,Shalev和Saught的篮子排队模型的一个模块化版本.它使用一个名为load-link/increment-conditional的新对象来操纵头部和尾部,该对象只能使用READ/WRITE指令来实现,并允许传播争用的实现。这表明,可能有一个替代方案,在以前的队列实现中,使用读-修改-写指令在单个共享寄存器上操纵头部和尾部的看似固有的瓶颈。
2022-05-12 cs.DC
Latency-Redundancy Tradeoff in Distributed Read-Write Systems
数据在多个服务器上进行冗余复制和存储,以确保分布式数据库中的可用性。我们关注的是具有频繁读写的数据库,在这些数据库中,读写延迟都很重要。这与主要为读或写应用程序设计的数据库相反。Reddit对读取和写入延迟的影响截然不同。读延迟可以通过来自多个服务器的潜在并行访问来减少,而写延迟则会随着必须更新大量副本而增加。我们量化的读和写延迟之间的权衡作为冗余的函数,并提供了一个封闭的形式近似时,请求到达是泊松和服务是无记忆的。我们的经验表明,这种近似是紧在所有范围内的系统参数。从而为分布式数据库的冗余选择提供了指导。
2021-11-27 cs.DB cs.DC cs.NI
Towards Reconfigurable Linearizable Reads
针对线性一致读算法需预先固定且难以适应工作负载变化的问题,本文提出 Chameleon,利用可在进程间转移的令牌构建通用读写法定人数系统,从而在运行时模拟并切换现有读算法。
2024-04-08 cs.DC
Eventually Consistent Register Revisited
为了在存在并发更新的情况下收敛,现代最终一致的复制系统依赖于因果关系信息和操作语义。在复制的数据结构(例如集合、列表等)上使用高级操作的语义相对容易。然而,难以利用存储不透明数据的寄存器上的操作的语义。在现有的寄存器设计中,并发写入由应用程序解决,或者根据它们的时间戳仲裁它们。前者很复杂,可能需要用户干预,而后者会导致任意更新丢失。在这项工作中,我们确定了一个寄存器的建设,概括了现有的运行时因果关系相结合,确定并发写入,静态数据语义,解决它们。我们提出了一个基于值域上应用程序预定义顺序的简单冲突解决模板。它消除或减少了需要由用户或显式应用程序逻辑解决的冲突数量。我们用用例说明了我们的方法的一些变体,以及它如何推广现有的设计。
2015-11-16 cs.DB cs.DC cs.DS
Dijkstra's Self-Stabilizing Algorithm in Unsupportive Environments
第一个自稳定算法[Dij 73]假设存在一个中央守护进程,该守护进程每次激活一个处理器,以根据其自身状态和邻居的状态来改变状态。随后的研究重新考虑了这种算法,没有中央守护进程的假设,并在不同形式的通信,如链接寄存器的模型。在所有这些研究中,一个共同的特征是通信的原子性,无论是通过共享变量还是读/写寄存器。本文削弱了通信模型的原子性假设,提出了容忍各种较弱形式的原子性的[Dij 73]版本。首先,提出了常规寄存器的情况下的解决方案。然后,安全寄存器的情况下被认为是消极和积极的结果。本文还提出了一种基于寄存器的[Dij 73]的实现,该寄存器具有概率正确的行为,这需要弱稳定的概念。
2001-05-07 cs.DC
Reducing Compare-and-Swap to Consensus Number One Primitives
一个对象的共识数是可以使用任意数量的对象实例和读写寄存器解决二进制共识的进程的最大数量。Herlihy [6]在他的开创性工作中表明,如果一个对象的共识数为n,那么对于任何非平凡的并发对象或在n个进程中共享的数据结构,都存在一个无等待和可线性化的实现的通用构造。因此,诸如具有无限一致性数和对应指令的比较和交换的同步对象可以被视为“强”。另一方面,诸如具有共识数2的取加和对应的取加指令的同步对象可以被视为“弱”。Ellen等人[2]最近观察到,支持两个弱指令的对象也可以像支持一个强指令的对象一样实现无限的共识数。使用Herlihy的通用构造,这意味着忽略对效率的关注,可以仅使用弱指令来设计任何并发数据结构或算法。然而,有没有可能弱指令的组合真的足够强大,可以有效地替换强指令,如比较和交换,而不会在时间或空间上产生很大的开销?在本文中,我们回答了这个问题,给出了一个O(1)时间等待免费和线性化的实现比较和交换寄存器共享n个进程使用读写寄存器和O(1)寄存器,支持两个同步原语半最大和最大写,每个有共识数1。因此,任何使用读写和比较交换寄存器解决任意同步问题的算法都可以转换为具有相同渐近时间复杂度且仅使用一致性1号指令的算法。
2018-08-20 cs.DC cs.DS
Storage-Efficient Shared Memory Emulation
我们研究的设计存储效率的算法模拟原子共享内存的异步,分布式消息传递系统。我们的第一个算法是一个原子的单写多读算法的基础上一种新的擦除编码技术,称为\emph{multi-version code}。接下来,我们提出了一个扩展,我们的单作家算法的多作家多读者的环境。我们的第二个算法结合了复制和多版本代码,并且适合于我们期望大量并发写入的情况。此外,当并发写的数量是有界的,我们提出了一个简化的第二个算法,具有一个简单的结构类似于单作家算法的变体。假设$N$是服务器的数量,共享内存变量的大小为1个单位。我们的算法具有以下性质:(i)写操作终止,如果服务器故障的数量是由一个参数$f$的限制。只要与读取并发的写入的数量小于设计参数$ν$,并且服务器故障的数量由$f$限制,则算法还保证读取的终止。(ii)第一种算法的总存储大小和第二种算法的稳态存储大小都是$N/\lceil \frac{N-2f}ν \rceil$单位。此外,我们的第二种算法的简化变体实现了$N/\lceil \frac{N-2f}ν \rceil$的最坏情况下的存储成本,渐近匹配Cadambe等人的下限。$N \gg f, ν\le f+1$。(iii)写和读操作仅由少量(2到3)通信轮组成。(iv)对于所有算法,服务器维护一个简单的数据结构。服务器只需要存储与它观察到的最新值相关联的信息,类似于基于复制的算法。
2018-06-26 cs.DC
LeaseGuard: Raft Leases Done Right
MongoDB Research(MongoDB 研究);MongoDB, Inc.(MongoDB 公司)
本文提出LeaseGuard,一种基于Raft选举特性的新型租约算法,通过两个优化提升可用性,减少读一致性开销并提高写吞吐量。
2025-12-19 cs.DC
Verifying PRAM Consistency over Read/Write Traces of Data Replicas
数据复制技术能够实现高效、高可用的数据访问,因此越来越受到学术界和工业界的关注。然而,数据复制引入了数据一致性的问题。现代商业数据复制系统通常在某些故障场景下为高可用性提供弱一致性。一个重要的弱一致性是流水线RAM(PRAM)一致性。它允许不同的进程持有不同的数据视图。为了确定数据复制系统是否确实提供PRAM一致性,我们研究了在读/写跟踪(或简称VPC)上的PRAM一致性问题。我们首先根据a)是否存在多个共享变量(或一个单个变量)以及b)写入操作是否可以为每个共享变量分配重复值(或仅唯一值)来识别VPC的四种变体;这四种变体被标记为VPC-SU,VPC-MU,VPC-SD和VPC-MD。其次,我们提出了一个简单的VPC-MU算法,称为RW-CLOSURE。它根据三条规则迭代添加边来构造操作图$\mathcal{G}$。它的时间复杂度是$O(n^5)$,其中n是跟踪中的操作数。第三,我们提出了一种改进的VPC-MU算法,称为READ-CENTRIC,时间复杂度为$O(n^4)$。基本上,它试图以增量和有效的方式构造操作图$\mathcal{G}$。它的正确性是基于RW-CLOSURE。最后,通过将强$\sf{NP}$ -完全问题3-PARTITION约化为它,证明了VPC-SD(VPC-MD也是)是$\sf{NP}$ -完全的.
2013-11-29 cs.DC
Randomized Consensus with Regular Registers
著名的随机共识算法由Aspnes和Herlihy异步共享内存系统被证明工作,即使对一个强大的对手,假设它使用的寄存器是原子寄存器。使用原子寄存器,每个读或写操作都是瞬时的(因此不可分割)。然而,正如Golab et al.(2011)所指出的,如果我们用寄存器的线性化实现替换它使用的原子寄存器,那么与原子寄存器一起工作的随机算法不一定工作。这就提出了以下问题:如果我们用可线性化的寄存器替换原子寄存器,Aspnes和Herlihy的随机共识算法是否仍然适用于强大的对手?我们的答案是肯定的,事实上,我们表明,即使是线性寄存器是不必要的。更确切地说,我们证明了该算法的Aspnes和Herlihy工程对一个强大的对手,即使该算法只使用常规寄存器。
2020-06-11 cs.DC cs.DS
Tight Bounds on Channel Reliability via Generalized Quorum Systems (Extended Version)
本文提出广义仲裁系统框架,通过放宽经典仲裁系统的双向连通性约束并引入新型逻辑时钟,刻画了在任意进程-信道故障模式下实现原子寄存器、原子快照、格协议和共识的紧界条件。
2025-05-05 cs.DC
Understanding Read-Write Wait-Free Coverings in the Fully-Anonymous Shared-Memory Model
本文研究全匿名共享内存模型中的根本问题,提出群可解性概念以支持任意任务在处理器匿名模型中的迁移,并通过分析无限读写下的稳定配置获得快照任务的无等待解法,进而解决重命名与免阻塞共识。
2024-05-07 cs.DC
Fast Concurrent Primitives Despite Contention
Stony Brook University(石溪大学);Carnegie Mellon University(卡内基梅隆大学);New York University(纽约大学);Tsinghua University(清华大学);VMware Research(VMware研究);Tel Aviv University(特拉维夫大学)
本文研究了在高竞争环境下构建并发对象的方法,提出了处理竞争的算法,并展示了在松散同步随机调度器下,读写寄存器和CAS寄存器的延迟为O(logP)。
2026-07-13 cs.DC cs.DS
Read-Write Quorum Systems Made Practical
仲裁系统是确保复制数据一致性的强大机制。生产系统通常选择多数仲裁,因为它们简单且具有容错能力,但多数仲裁系统的吞吐量和可伸缩性较差。或者,研究人员发明了一些理论上“最优”的法定人数系统,但基本理论忽略了许多实际的复杂性,如机器异构性和工作负载倾斜。在本文中,我们对法定人数制度进行了务实的重新审视。我们丰富了目前的理论与一些实际的改进,找到法定系统,提供更高的吞吐量,更低的延迟,更低的网络负载的法定系统。我们还开发了一个库Quoracle,它精确地量化了法定系统之间的可用权衡,使工程师能够找到最佳的法定系统,给定一组特定部署和工作负载的目标。我们的工具可在线获取:https://github.com/mwhittaker/quoracle。
2021-04-08 cs.DC
Proofs of Writing for Efficient and Robust Storage
我们提出PoWerStore,第一个有效的强大的存储协议,实现最佳的延迟,而不使用数字签名。PoWerStore的鲁棒性包括容忍冗余、最大数量的拜占庭存储服务器、任意数量的拜占庭读取器和崩溃故障写入器,并保证读/写操作的等待自由度和线性化。PoWerStore的效率源于结合轻量级身份验证,擦除编码和元数据回写,其中读取器只回写元数据以实现线性化。PoWerStore的核心是写作证明(PoW):一种基于轻量级密码学的新型存储技术。PoW使PoWerStore的单写入器变体中的读取和写入在最坏情况下(我们显示为最佳情况)在客户端和存储服务器之间具有2轮通信的延迟。我们进一步提出并实现了一个多作家PoWerStore变体,具有3轮写/读,其中第三轮读仅在主动攻击下调用,并表明它优于现有的强大的存储协议,包括容错的。
2012-12-24 cs.CR cs.DC
Auditing without Leaks Despite Curiosity
本文提出一种改进的可审计性定义,关注读操作何时生效,并提出了无等待的多写者多读者寄存器实现,结合原子操作和一次性密码本加密防止未授权审计,扩展至可审计最大寄存器、快照对象及版本化类型。
2025-05-01 cs.CR cs.DC
Simple Executions of Snapshot Implementations
在并发编程中,众所周知的快照原语允许n个异步进程将值写入单写入寄存器阵列,并为每个进程获取这些寄存器的快照。在本文中,我们提供了一个制定的快照算法的线性化条件,在某些数学函数的存在。此外,我们确定了一个简化的快照实现的属性,我们称之为“基于时间表的算法”。就我们所知,每个已发布的快照算法都是基于时间表的,在这个意义上,这个属性是很自然的假设。在此基础上,我们证明,当处理基于调度的算法,它足以考虑只有一小类非常简单的执行证明或证伪的线性化方面的正确性。我们相信,本文提出的思想可能有助于设计自动验证的快照算法。由于验证线性化最近被证明是EXPSPACE完全的,专注于独特的对象(在我们的情况下快照)可能会导致设计限制,但可行的验证方法。
2015-02-10 cs.DC
Standard protocol complexes for the immediate snapshot read/write model
在本文中,我们考虑一族抽象单纯复形,我们称之为立即快照复形。它们的定义是由理论上的分布式计算激发的。具体而言,这些复合体在一般即时快照执行模型中作为协议复合体出现。为了定义和分析即时快照复合物,我们使用见证结构的新语言。我们发展了严格的数学理论的见证结构,并用它来证明几个组合以及拓扑性质的即时快照复合物。特别地,我们证明了这些复合物是单纯同胚的单纯。
2014-02-19 cs.DC math.AT
On Atomic Registers and Randomized Consensus in M&M Systems
Aguilera等人受近年来分布式系统技术的启发,提出了一种混合的分布式计算模型,称为消息和内存模型,简称m&m模型[1]。在这个模型中,进程可以通过消息传递进行通信,也可以通过访问一些共享内存(例如,通过一些RDMA连接)。我们首先考虑的基本问题,实现原子单写多读(SWMR)寄存器共享的所有进程在M&M系统。具体来说,我们给出了一个算法,实现这样的寄存器在M&M系统,并表明它是最佳的进程崩溃,它可以容忍的数量。这推广了纯消息传递系统中原子SWMR寄存器的众所周知的实现[5]。然后,我们结合我们的寄存器实现的m&m系统与著名的随机共识算法的Aspnes和Herlihy [4],并获得一个随机共识算法的m&m系统,也是最佳的进程崩溃,它可以容忍的数量。最后,我们确定的最小数量的RDMA连接,足以实现一个SWMR寄存器,或解决随机共识,在一个m&m系统与t进程崩溃,对于任何给定的t。
2020-12-13 cs.DC cs.DS
Operation-Type-Aware Client Routing for Leader-Based Consensus Datastores
Amazon Web Services(亚马逊云服务);NVIDIA(英伟达)
针对基于领导者的共识数据存储,提出操作感知客户端路由策略,将写操作固定至领导者、读操作分发至健康读池,可显著降低延迟并提升吞吐量,且在etcd与ZooKeeper上均有效。
2026-09-02 cs.DC cs.SE
On the energy efficiency of client-centric data consistency management under random read/write access to Big Data with Apache HBase
2010年,数据中心的总能源费用估计为115亿美元,专家估计,典型数据中心的能源成本每五年翻一番。另一方面,计算的发展已经开始落后于存储的进步,成为未来数据增长的瓶颈,数据增长已经接近Exascale级别。我们调查的数据吞吐量和能源足迹之间的关系在一个大型存储集群,其目标是正式作为一个指标,反映一致性和能源之间的交易。采用以客户端为中心的一致性方法,同时尊重ACID属性的案例研究(Apache HBase)所选择的柱状存储,我们提出的系统的能源消耗所涉及的因素,以及经验教训,以支持进一步设计的节能集群规模的存储系统。
2016-11-30 cs.DC cs.PF
Minimizing Content Staleness in Dynamo-Style Replicated Storage Systems
数据存储系统中的一致性要求任何读操作返回内容的最新写入版本。在复制存储系统中,一致性是以大规模读写操作造成的延迟为代价的。许多具有低延迟要求的应用容忍数据陈旧,以便提供高可用性和低操作延迟。使用年龄的信息作为陈旧性度量,我们研究了一个数据更新系统,其中实时内容更新复制和存储在一个Dynamo风格的基于仲裁的分布式系统。源将更新发送到系统中的所有节点,并等待来自最早节点子集(称为写仲裁)的应答。感兴趣的客户端从另一组节点(定义为读仲裁)获取更新。我们分析了不同的写仲裁大小在复制存储的陈旧延迟权衡。对于较大的写入仲裁,瞬时读取更有可能获得源写入的最新更新。但是,随着写入仲裁大小的增加,写入系统的内容的年龄更有可能变得陈旧。对于移位指数分布的写延迟,我们推导出年龄优化的写仲裁大小,该大小平衡了读取最新更新的可能性和由源写入的最新更新的新鲜度。
2018-04-02 cs.DB cs.DC cs.NI