基于对象语义的事务内存系统中实现可组合性的高效方法
1. 引言
软件事务内存系统(STMs)为程序员提供了一个方便的编程接口,使其在访问共享内存时无需担心并发问题,并且是实现可组合性的自然选择。大多数文献中提出的 STM 基于对内存缓冲区的读写操作,这类 STM 通常提供以下方法:开始事务的 STM begin 、从缓冲区读取的 t read 、向缓冲区写入的 t write 、验证事务操作并尝试提交的 tryC ,我们将其称为读写 STM(RWSTMs)。在验证过程中,STM 会检查操作之间的冲突,若至少有一个操作是写操作,则认为两个操作冲突,通常冲突操作的顺序不能交换。
而对象 STM(OSTMs)则操作于更高级别的对象,包含更具语义的操作,如队列对象的入队/出队、栈对象的压栈/弹栈,以及集合、树或哈希表对象的插入/查找/删除操作。数据库研究表明,对象级系统比读写系统具有更高的并发性。我们提出了一个模型,通过考虑高级对象来实现 STM 的可组合性和更高的并发性。
以操作哈希表对象的 HT - OSTM 为例,它提供以下方法:开始事务的 STM begin 、插入键值对的 STM insert 、删除指定键对应值的 STM delete 、查找指定键对应值的 STM lookup 以及验证事务操作的 STM tryC 。
一个简单的实现并发 HT - OSTM 的方法是使用链表,链表中的每个元
超级会员免费看
订阅专栏 解锁全文
3320

被折叠的 条评论
为什么被折叠?



