On the Cost of Concurrency in Transactional Memory
软件事务存储器(STM)的关键是将一个易于使用的编程接口与现代机器提供的并发计算能力的有效利用相结合。但这种结合是否会带来内在成本?我们通过测量STM实现中必须采用的昂贵同步的数量来评估并发的成本,以确保正并发,即,在某些执行中允许并发事务处理。我们专注于两个流行的进展条件,提供积极的并发:渐进性和宽容。我们表明,在许可的STM,提供了一个非常高的并发度,一个事务执行一个线性数量的昂贵的同步模式相对于其读集大小。相比之下,渐进式STM提供了非常小程度的并发性,但正如我们所展示的,可以使用每个事务最多一个昂贵的同步模式来实现。然而,我们表明,即使在渐进式STM中,交易也必须“保护”(例如,通过使用锁或强同步原语)相对于其写集大小的线性数据量。我们的研究结果表明,在STM实现中寻找高并发度可能会带来相当大的同步成本。
2013-06-27 cs.DC
Programming Idioms for Transactional Events
transmittance events(TE)是Concurrent ML(CML)的扩展,CML是一种同步消息传递的编程模型。以前的工作主要集中在TE的形式语义及其实现。本文考虑编程习惯用法,特别是那些与对应的CML习惯用法意外不同的编程习惯用法。首先,我们解决了TE中客户端-服务器协议的一个微妙问题。其次,我们认为,CML的包装和保护原语不翻译以及TE,我们建议有用的变通办法。最后,我们讨论了如何重写CML协议,使用中止动作。
2010-02-04 cs.DC cs.PL
Transactional Composition of Nonblocking Data Structures
本文介绍了非阻塞事务组合(NBTC),一种新的方法,原子组合的非阻塞操作的并发数据结构。与以前的软件事务存储器(STM)方法不同,NBTC利用现有非阻塞结构的线性化能力,减少必须一起执行的存储器访问数量,原子地,在大多数情况下每个操作只有一个(这些通常是组成操作的线性化指令)。我们对NBTC的无障碍实现,我们称之为Medley,可以轻松地将大多数非阻塞数据结构转换为事务对应物,同时保持它们的活性和高并发性。在我们的实验中,Medley比最快的竞争方法--无锁transmittance变换(LFTT)的性能高40- 170%。相对于连续执行的单独操作,Medley的事务组合的边际开销大约为2.2 $\times$。对于持久数据结构,我们观察到,故障原子性的事务可以实现“几乎免费”与基于时代的定期持久性。为此,我们将Medley与nbMontage集成,nbMontage是一个周期性持久数据结构的通用系统。由此产生的txMontage提供了ACID事务,并实现了比OneFile持久STM系统高两个数量级的吞吐量。
2023-01-07 cs.DC cs.DS cs.PF
On the Cost of Concurrency in Transactional Memory
传统的同步技术基于\emph{locking},它为线程提供对共享数据的独占访问。\emph{Coarse-grained}锁定通常会强制线程顺序访问大量数据,因此无法充分利用硬件并发性。另一方面,特定于程序的\emph{fine-grained}锁定或\emph{non-blocking}(\emph{i.e.},不使用锁)同步对大多数程序员来说是一种黑暗的艺术,只依赖于少数计算专家的智慧。因此,它是有吸引力的,以寻求这两个极端之间的中间地带:一个同步机制,减轻了程序员的开销的推理数据冲突,可能会出现并发操作,而不会严重限制程序的性能。\emph{Transactional Memory (TM)}的抽象提出了这样一种机制:它打算结合一个易于使用的编程接口,有效利用多核架构提供的并发计算能力。TM允许程序员\emph{speculatively}以具有\emph{all-or-nothing}语义的\emph{atomic transactions}形式执行共享内存操作序列:事务可以是\emph{commit}(在这种情况下,它看起来像是按顺序执行的),也可以是\emph{abort}(在这种情况下,它的更新操作不生效)。因此,程序员可以在设计软件时只考虑顺序语义,并让TM在运行时负责解决并发执行中的冲突。直观地说,我们希望TM允许尽可能多的\emph{concurrency}:…
2015-11-05 cs.DC
The Optimal Pessimistic Transactional Memory Algorithm
transmittedmemory(TM)是一种旨在通过在保持效率的同时自动同步来简化并发编程的方法。TM通常采用乐观的并发控制方法,该方法依赖于在发生冲突时中止和重新启动事务。但是,如果在其代码中存在不可撤销的操作,则中止的事务仍可能在系统中留下一些无法清除的影响。悲观方法消除了这个问题,因为它依赖于在冲突的情况下延迟操作而不是中止,但是由于需要串行化事务,迄今为止悲观TM的并行性很低。在本文中,我们的目标是介绍OptSVA,一个悲观TM并发控制算法,通过电池的深远的优化,包括早期释放,异步执行,并广泛使用缓冲,确保高水平的并行性。
2017-11-20 cs.DC
Efficient means of Achieving Composability using Object based Conflicts on Transactional Memory
将并发数据结构(cds)的各个原子方法组合在一起,提出了多个设计和一致性挑战。在这种情况下,由软件事务存储器(STM)中的事务提供的组合可能很方便。然而,大多数STM提供读/写原语来访问共享CD。这些读/写原语会导致不必要的中止。相反,底层cds的语义丰富的高级方法,如查找、插入或删除(在哈希表或列表的情况下),有助于忽略不重要的低级读/写冲突,并允许更好的并发性。在本文中,我们适应数据库中的事务树模型,提出OSTM,使高效的组合在CDS。我们将传统的冲突和合法性概念扩展到使用STM的更高级别的CDS方法,并给出详细的正确性证明,以表明它是共同不透明的。我们实现了OSTM与并发闭地址哈希表(HT-OSTM)和列表(list-OSTM),其中出口作为事务接口的高层操作。在我们的实验中,不同的工作负载和随机生成的事务操作,HT-OSTM显示3到6倍的加速和w.r.t中止HT-OSTM是3到7倍,分别优于ESTM和基于读/写的STM。其中,list-OSTM在所有工作负载和场景中的性能都优于最先进的无锁事务列表,NOrec STM列表和boosted list,提高了30%到80%。此外,列表-OSTM与本文中考虑的其他技术相比,产生了可以忽略不计的中止。
2018-05-26 cs.DC
Harnessing Scalable Transactional Stream Processing for Managing Large Language Models [Vision]
Singapore University of Technology and Design(新加坡科技设计大学)
本文提出 TStreamLLM 框架,将事务流处理与 LLM 管理结合,以支持高并发、低延迟的持续更新与调用,并通过医疗和交通场景阐明研究路线。
2023-07-17 cs.AI cs.DB cs.DC
Atomic RMI 2: Highly Parallel Pessimistic Distributed Transactional Memory
分布式事务存储器(DTM)是一种新兴的分布式同步方法,它基于事务抽象在分布式计算中的应用。DTM有几种系统模型,但控制流模型(CF)特别强大,因为它允许事务将计算委托给远程节点以及访问共享数据。然而,没有现有的CF DTM系统与在其他模型中操作的最先进的系统具有同等的性能。因此,我们介绍了一个CF DTM同步算法,OptSVA-CF。它支持细粒度的悲观并发控制,因此避免了中止,从而避免了不可撤销操作的问题。此外,它使用早期发布和可扩展性来高度并行并发事务,同时保持强大的安全属性。我们将其实现为Atomic RMI 2,实际上产生了一个CF DTM系统,正如我们的评估所示,它可以胜过最先进的非CF DTM,如HyFlow 2。
2016-06-13 cs.DC
Why Transactional Memory Should Not Be Obstruction-Free
transmittance memory(TM)是一种固有的乐观抽象:它允许并发进程推测性地执行共享数据访问(事务)序列,并可以选择在将来中止它们。早期的TM设计避免使用锁,并依赖于非阻塞同步来确保无阻塞:不允许任何步骤争用的事务中止。然而,后来观察到,无障碍TM表现不佳,因此,目前最先进的TM实现是阻塞的,允许由于数据冲突而不是步骤争用而中止。在本文中,我们解释了这种转变,在TM实践理论上,通过复杂性界限。我们证明了几个重要的下限无障碍TM。然后,我们提出了一个基于锁的TM实现,击败所有这些下限。总之,我们的研究结果表现出相当大的复杂性差距之间的非阻塞和阻塞TM实现。
2016-03-04 cs.DC
PathCAS: An Efficient Middle Ground for Concurrent Search Data Structures
为了最大限度地提高并发数据结构的性能,研究人员经常转向高度复杂的细粒度技术,从而产生高效和优雅的算法,然而,这些算法通常难以理解和证明正确。虽然存在更简单的技术,如事务内存,但相对于细粒度的技术,它们的性能或可移植性有限。这种复杂性-性能范围两端的方法已经被广泛探索,但相对较少了解中间地带:愿意牺牲一些性能以实现简单性的方法,同时与最先进的手工设计保持竞争力。在本文中,我们探索这一中间地带,并提出PathCAS,一个原语,结合了多字CAS(KCAS)和事务内存方法的想法,同时小心地避免开销。我们展示了如何PathCAS可以用来实现高效的搜索数据结构相对简单,使用内部二叉搜索树作为一个例子,然后扩展到一个AVL树。我们最好的实现优于许多手工制作的搜索树:在搜索繁重的工作负载中,它可以与BCCO树[5]相媲美,BCCO树是搜索性能最快的已知并发二叉树[3]。我们的研究结果表明,PathCAS可以产生并发的数据结构,是相对容易建立和证明正确的,同时提供令人惊讶的高性能。
2022-12-19 cs.DC
Using Nesting to Push the Limits of Transactional Data Structure Libraries
事务数据结构库(TDSL)将事务的易于编程性与定制并发数据结构的高性能和可伸缩性相结合。由于它们能够利用数据结构语义,与通用软件事务存储器相比,它们可以非常高效地减少开销、中止和浪费的工作。然而,TDSL以前没有用于涉及长事务和各种数据结构的复杂用例。在本文中,我们提高了性能和可用性的TDSL,使其能够支持复杂的应用程序。一个关键的想法是嵌套。嵌套事务在较长的事务中创建检查点,以限制中止的范围,而不改变原始事务的语义。我们构建了一个Java TDSL,它内置了对多个数据结构上的嵌套事务的支持。我们进行了一个复杂的网络入侵检测系统,投资了大量的工作来处理每个数据包的案例研究。我们的研究表明,我们的库在没有嵌套的情况下比公开可用的STM性能高两倍,在使用嵌套时高达16倍。
2021-02-16 cs.DC
Adapting Persistent Data Structures for Concurrency and Speculation
这项工作统一了来自系统和函数式编程社区的见解,以实现对软件的组合推理,而软件在硬件中是可以有效实现的。它利用高效并发数据结构和高效不可变持久化数据结构的设计目标之间的对应关系,产生具有低争用和高效快照操作的可变并发树的新颖实现,以支持推测性执行模型。它还利用交换性来表征将传统的高性能并发数据结构集成到软件transmittance Memory(STM)运行时的设计空间,并扩展了这种技术,以产生一种用于并发执行所谓的“智能合约”(操纵区块链分类账状态的专用程序)的新算法。
2020-03-16 cs.DC cs.DS cs.PL
Performance Comparison of Various STM Concurrency Control Protocols Using Synchrobench
为共享内存的多处理器系统编写并发程序是一场噩梦。这阻碍了用户充分利用多处理器的潜力。软件事务存储器(STM)是一种很有前途的并发编程范式,它解决了多处理器系统编程的难题。本文实现了BTO(Basic Timestamp Ordering)、SGT(Serialization Graph Testing)和MVTO(Multi-Version Timestamp Ordering)并发控制协议,并建立了一个STM(Software Transmittance Memory)库来评估这些协议的性能。遵循延迟写入方法来实现STM。利用STM库中的事务实现了SET数据结构。并将此事务SET作为测试应用程序来评估STM。协议的性能进行了严格的比较,对链表模块的Synchrobench基准。链表模块采用惰性表、无锁表、锁耦合表和弹性软件事务存储器ESTM实现SET数据结构。我们的分析表明,对于线程数大于60和更新率为70%,BTO采取(17%至29%)和(6%至24%)更少的CPU时间,每个线程时,与懒惰列表和锁耦合列表相比。与lazy-list和lock-coupling list相比,MVTO每个线程占用的CPU时间分别减少了(13%到24%)和(3%到24%)。BTO和MVTO具有类似的每个线程CPU时间。BTO和MVTO的表现优于SGT 9%至36%。
2017-07-26 cs.DC
Concurrent Robin Hood Hashing
在本文中,我们将研究在罗宾汉哈希表算法中添加并发所涉及的问题。我们提出了一个非阻塞的无障碍K-CAS罗宾汉算法,它只需要一个字的比较和交换原语,从而使它具有高度的可移植性。该实现保持了原始罗宾汉结构的吸引人的属性,如低预期的探针长度,在高负载因子和良好的高速缓存局部性下有效操作的能力,所有这些都是现代计算机体系结构上的高性能所必需的。我们将我们的数据结构与其他各种无锁和并发算法以及一个简单的硬件事务变体进行比较,并表明我们的实现在许多上下文中表现更好。
2018-11-14 cs.DC
Multiversion Concurrency with Bounded Delay and Precise Garbage Collection
在本文中,我们感兴趣的是处理事务所需的指令数。主要结果是一个多版本事务系统,支持所有只读事务的恒定延迟(额外的指令超出隔离运行),延迟等于与其他作家不并发的写事务的进程数,并发作家的锁自由。系统支持精确的垃圾回收,因为一旦最后一个事务释放了版本,就标识出要收集的版本。据我们所知,这些是第一个结果,约束多个读者,甚至一个作家的延迟。这种方法在读事务支配写事务的情况下特别有用,或者写事务作为流或批处理进来,并且可以由单个写入器处理(可能是并行的)。该方法基于功能数据结构来支持多版本,有效地解决了版本获取、更新和发布的版本维护问题。我们对VM问题的解决方案是精确的,安全的和无等待的(PALK)。我们实验验证我们的方法,将其应用到平衡树数据结构,以维护有序的地图。我们测试的事务系统使用多种算法的VM问题,包括我们的PINDUM VM算法,并实现较弱的保证的基础上的历元,危险指针,和读取复制更新。为了评估并发和多版本的功能数据结构,我们实现了批量更新的功能树结构和比较性能与最先进的并发数据结构的平衡树。实验表明,我们的方法在实践中工作得很好,在广泛的标准。
2019-05-15 cs.DC cs.DS
OptSmart: A Space Efficient Optimistic Concurrent Execution of Smart Contracts
流行的区块链,如以太坊和其他几个区块链,通过用户定义的脚本(称为智能合约)在块中执行复杂的交易。智能合约交易/原子单元(AU)的串行执行无法利用多核处理器的普及所提供的多处理能力。通过向AU的执行添加并发性,我们可以实现更好的效率和更高的吞吐量。在本文中,我们开发了一个并发矿工,提出了一个块执行的AU同时使用乐观的软件transmittance内存系统(STM)。它有效地捕获并发bin中的独立AU和块图(BG)中的依赖AU。稍后,我们提出了一个并发验证器,它使用并发bin和矿工给出的BG来并行和确定性地重新执行相同的AU,以验证所提出的区块。我们严格证明了并发执行的AU的正确性,并取得了显着的性能增益超过国家的最先进的。
2021-02-17 cs.DC
Reducing Opacity to Linearizability: A Sound and Complete Method
事务内存是一种代表程序员管理线程同步的机制,以便代码块以原子性的假象执行。事务内存的主要安全标准是不透明性,它定义了串行化并发事务的条件。证明不透明性是复杂的,因为它允许并发事务观察不同的内存状态,而TM实现通常基于一个共享存储。本文提出了一个健全的和完整的方法,基于粗粒度的抽象,减少证明的不透明性相对简单的正确性条件:线性化。我们使用我们的方法来验证TML和NORec从文献中,并显示我们的技术扩展到宽松的内存模型,表明这两个TSO下是不透明的,而不需要额外的围栏。我们的方法还阐明了TM设计在更高的抽象层次,作为一个应用程序,我们开发了一个变化的NORec与快速路径读取事务。我们所有的证明都是机械化的,无论是在Isabelle定理证明器还是PAT模型检查器中。
2016-10-04 cs.DC cs.DS cs.LO
An Innovative Approach to Achieve Compositionality Efficiently using Multi-Version Object Based Transactional Systems
在多核处理器的现代时代,利用内核是一项繁琐的工作。处理器之间的同步和通信涉及高成本。软件事务存储系统(STM)解决了这个问题,并提供了更好的并发性,程序员不必担心一致性问题。STM的另一个优点是,它们非常容易地促进并发程序的组合性。需要组合以形成单个原子单元的不同并发操作通过将它们封装在单个事务中来实现。在本文中,我们介绍了一个新的STM系统,多版本的基于对象的STM(MVOSTM),这是这两个想法的结合,利用更大的并发性STM。顾名思义,MVOSTM在更高的级别上工作,并维护与每个密钥对应的多个版本。我们开发了MVOSTM,每个密钥对应的版本数量不受限制。除此之外,我们还为MVOSTM开发了垃圾回收(MVOSTM-GC)来删除键对应的不需要的版本,以减少遍历开销。MVOSTM提供了更大的并发性,同时减少了中止的数量,并通过使事务原子化来确保组合性。在这里,我们已经将MVOSTM用于列表和哈希表数据结构,如列表-MVOSTM和HT-MVOSTM。实验结果的列表MVOSTM优于几乎2到20倍的加速比现有的国家的最先进的基于列表的STM(trans-list,boosting-list,NOrec-list,list-MVTO,和list-OSTM)。HT-MVOSTM显示出比现有的最先进的基于哈希表的STM(ESTM、RWSTM、HT-MVTO和HT-OSTM)高出近2到19倍的显著…
2018-07-30 cs.DC
Warp: Lightweight Multi-Key Transactions for Key-Value Stores
传统的NoSQL系统通过在多个服务器上分片数据,并在少量服务器上执行每个操作来扩展。由于多个键上的事务必然需要跨多个服务器进行协调,因此NoSQL系统通常会显式地避免做出事务保证,以避免这种协调。过去在事务系统上的工作通过增加事务排序的粒度、牺牲可串行性或通过做出时钟同步性假设来控制这种协调。本文提出了一种新的协议,用于在分片数据存储之上提供可串行化的事务。该协议被称为非循环事务,允许多个事务同时准备和提交,提高了系统的并发性,同时确保并发提交事务之间不会形成循环。我们已经在一个名为Warp的文档存储中完全实现了非循环事务。实验表明,在标准TPC-C基准测试中,Warp的吞吐量比Sinfonia的mini-transactions高4倍,并且没有异常中止。此外,该系统实现了其构建的非事务性键值存储的75%的吞吐量。
2015-09-25 cs.DC
Building a Correct-by-Design Lakehouse. Data Contracts, Versioning, and Transactional Pipelines for Humans and Agents
Columbia University(哥伦比亚大学);University of Wisconsin-Madison(威斯康星大学麦迪逊分校);Bauplan Labs(Bauplan实验室)
本文提出Bauplan,一种以代码为核心的湖house,通过类型表合同、Git式数据版本控制和事务性运行机制,消除并发变更导致的失败问题,提升数据管道的正确性和可重复性。
2026-03-17 cs.AI cs.DB cs.DC
Multiversion Conflict Notion for Transactional Memory Systems
近年来,软件事务存储器系统(STM)作为解决存储器中并发问题的优雅替代方案已经引起了极大的兴趣。STM系统采取乐观的方法。允许多个事务并发执行。完成后,每个事务都将被验证,如果观察到任何不一致,则会中止。否则允许提交。在数据库中,基于冲突概念的一类历史被称为冲突可串行化(CSR),其成员可以有效地验证。因此,CSR是数据库中常用的正确性标准。类似地,使用冲突的概念,可以设计其成员资格可以在多项式时间内验证的正确性标准,冲突不透明性(co-opacity),其是的子类。使用该验证机制,可以设计一个有效的STM实现,该实现是允许的w.r.t共不透明度。通过为每个事务对象存储多个版本,多版本STM比单版本STM提供更多的并发性。但共同不透明的主要缺点是,它不承认使用多个版本的历史。这促使我们为多版本STM开发新的冲突概念。本文提出了一种新的冲突概念--多版本冲突。使用这种冲突的概念,我们确定了一个新的子类的不透明性(一个流行的正确性标准),mvc-不透明,承认多版本的历史,其成员资格可以在多项式时间验证。我们证明了共不透明度是这个类的一个真子集。与传统冲突不同,所提出的冲突概念mv-冲突也可以应用于非顺序历史。此外,我们认为,这种冲突的概念可以很容易地扩展到其他正确性标准。
2015-09-15 cs.DC
Distributionally Linearizable Data Structures
松弛并发数据结构由于其在图处理和机器学习应用中的可扩展性而变得越来越流行。尽管有相当大的兴趣,但存在自然的、高性能的随机化松弛并发数据结构的家族,例如用于实现松弛优先级队列数据结构的流行的MultiQueue模式,对于该模式,在并发设置中没有已知的保证。我们的主要贡献是在显示的第一次,根据一组分析假设,一个家庭的放松并发数据结构,包括变量的MultiCounter,但也是一个新的近似计数算法,我们称之为MultiCounter,提供了强有力的概率保证放松的程度相对于顺序规范,在任意并发执行。我们正式这些保证通过一个新的正确性条件称为分布式线性化,定制并发实现随机松弛。我们的研究结果是基于一个新的分析的经典的两个选择负载均衡算法的功率的异步变体,其中的位置选择可以基于不一致的,过时的信息(这个结果可能是独立的利益)。我们验证了我们的结果经验,表明MultiCounter算法可以实现可扩展的宽松的时间戳,这反过来又可以提高性能的经典TL2事务算法的3倍,为一些参数的设置。
2022-03-25 cs.DC
Practically and Theoretically Efficient Garbage Collection for Multiversioning
多版本控制广泛应用于数据库、事务内存和并发数据结构中。它可用于支持在存在并发更新操作的情况下显示为原子的只读事务。任何维护每个对象的多个版本的系统都需要一种有效地回收它们的方法。我们实验比较各种现有的回收技术,将它们应用到多版本树和多版本哈希表。使用这些实验的见解,我们开发了两个新的多版本垃圾回收(MVGC)技术。这些技术使用两种新颖的并发版本列表数据结构。我们的实验评估表明,我们最快的技术与现有最快的MVGC技术竞争,同时在某些工作负载上使用更少的空间。我们的新技术提供了强大的理论界限,特别是在空间使用方面。这些界限确保方案具有一致的性能,避免了其他技术的非常高的最坏情况下的空间使用。
2023-01-08 cs.DB cs.DC
A Concurrent Calculus with Atomic Transactions
软件事务存储器(STM)模型是一种用于控制对资源的并发访问的原始方法,而不需要显式的基于锁的同步机制。STM的一个关键特性是提供了一种方法来将原子块内的读写操作序列分组,类似于数据库事务,其整个效果应该原子地发生。在本文中,我们调查STM从进程代数的角度来看,定义了一个扩展的异步CCS与原子块的行动。我们的目标是不仅要设置一个正式的推理STM实现的基础,但也要了解这个模型与其他并发控制机制。我们还将此演算视为使用原子事务扩展流程演算的测试平台。这是一个有趣的研究方向,因为在大多数情况下,将事务与进程演算混合在一起的实际工作考虑补偿事务,这是一个缺乏所有众所周知的ACID属性的模型。我们发现,除了原子事务的结果在一个非常富有表现力的演算,足以轻松地编码其他并发原语,如守护选择和多集同步(à la join演算)。我们的编码的正确性证明使用一个合适的概念互模拟等价。然后应用等价性来证明有趣的“交易定律”,并获得交易的简单范式。
2006-10-24 cs.DC cs.LO
Efficient Parallel Execution of Blockchain Transactions Leveraging Conflict Specifications
针对区块链交易并行执行中的冲突问题,提出利用冲突规范信息的区块事务内存方法,在EVM和MoveVM上实现最高1.75倍加速,并超越Parallel-EVM达1.33倍。
2025-08-14 cs.DC
In the Search of Optimal Concurrency
实现并发数据结构通常从定义其顺序规范开始。但是,当使用\emph{as is}时,非平凡顺序数据结构(如链表、搜索树或哈希表)可能会暴露错误行为:丢失更新、不一致的响应等。为了确保正确性,必须使用同步原语“保护”对共享数据进行操作的顺序代码部分免受数据竞争的影响,因此,必须拒绝并行操作步骤的某些调度。但是,我们是否可以确保不“过度使用”同步,即,只有当并发调度违反正确性时,我们才拒绝它?在本文中,我们正式对待这个问题,通过引入一个\emph{concurrency-optimal}实现的概念。程序的并发性在这里被定义为它接受并发调度的能力,即,其顺序实现的步骤的交错。如果一个实现接受所有不违反程序正确性的交织,那么它就是并发最优的。我们探讨并发性能的\emph{search}数据结构,可以表示的形式,有向无环图导出插入,删除和搜索操作。我们首次证明了\emph{pessimistic},例如,基于保守锁定)和\emph{optimistic serializable}(例如,基于可串行化事务存储器)搜索数据结构的实现在并发性方面是无法比拟的。具体来说,存在顺序代码的简单交织,其不能被\emph{any}悲观(和\emph{resp.},可串行化乐观)实现接受,但被可串行化乐观实现(和\emph{resp.},悲观)接受。因此,这两个实现类都不是并发最优的。
2016-03-04 cs.DC
uSTM: A Lightweight and Efficient STM Supporting General Types and Deferred Aborts
Carnegie Mellon University(卡内基梅隆大学)
研究针对STM系统存在的安全性、可用性和通用性问题,提出轻量级高效的uSTM系统,支持通用类型且保持数据布局,延迟中止,实现新颖时间戳算法,经比较在多种工作负载上性能匹配或超越先进系统。
2026-07-21 cs.DC
Static Application-Level Race Detection in STM Haskell using Contracts
编写并发程序是一项艰巨的任务,即使使用高级同步原语(如事务存储器)和具有良好控制副作用的函数式语言(如Haskell),因为进程之间产生的干扰可能发生在不同的级别,并且以非常微妙的方式发生。当线程将共享数据保留或公开为与应用程序逻辑或数据的真实含义不一致的状态时,就会出现问题。在本文中,我们建议将合同与交易相关联,并定义了一个程序转换,使得在STM Haskell的上下文中扩展静态合同检查成为可能。因此,我们能够静态地检查STM Haskell程序的每个事务处理共享数据的方式,即以用户定义的布尔函数的形式表示的给定一致性属性被保留。这确保了在并发程序的执行过程中不会发生不良干扰。
2013-12-10 cs.DC cs.LO cs.PL
Tackling Consistency-related Design Challenges of Distributed Data-Intensive Systems - An Action Research Study
背景:分布式数据密集型系统越来越多地被设计为最终一致。持久性数据不再使用序列化和事务性访问进行处理,从而使应用程序面临一系列需要由应用程序本身处理的潜在并发异常。在单片系统中控制并发数据访问已经是一个挑战,但在分布式系统中,这个问题更加严重。更糟糕的是,软件架构社区在这个问题上只提供了很少的系统工程指导。目的:在本文中,我们报告我们的研究的有效性和适用性的新的设计准则,我们在这方面提出的。方法:我们使用行动研究,并进行了多站点平台开发项目的软件架构设计过程的背景下。结果:我们关于有效性和适用性的假设已被接受的背景下的研究。最初的设计指南在整个研究过程中得到了完善。因此,我们也贡献了具体的指导方针,分布式数据密集型系统的架构,最终一致的数据。这些指南是领域驱动设计的一个进步,并为战术设计部分提供了额外的模式。结论:根据我们的研究结果,我们建议使用该指南来构建安全的最终一致的系统。由于分布式数据密集型系统的相关性,我们将推动这项研究,并在进一步的领域进行评估。
2021-08-08 cs.DC cs.SE