并行动态搜索


24

是否存在与具有相似甚至不那么糟糕的属性的红黑树进行更新的自然并行模拟,同时又具有合理的工作效率?

更笼统地说,我们对更新进行并行搜索的最佳方式是什么?


您特别希望保留或变“不可怕”的什么属性?平衡条件仍然是红黑树的平衡条件有多重要?并发跳过列表中的预期范围是否可以接受?
jbapple

我认为预期范围会很好。在这种情况下,我们经常使用更新的键值来访问数据结构,因此准确地说,即使是高效的更改键操作,斐波纳契堆也可以。您对并发跳过列表有很好的参考吗?
Suresh Venkat 2010年

Herlihy&Shavit的书《多处理器编程的艺术,或“无锁链接列表和跳过列表”java.util.concurrent实用锁自由。您是否考虑过使用像Hopscotch哈希表这样的并发哈希表
jbapple

其实不行 可悲的是我并发方法不识字。感谢您的推荐。
Suresh Venkat 2010年

Answers:


8

据我所知,策略涉及放松平衡条件,然后突然执行重新平衡更新。这是Hanke等人在1997 [PDF]上发表的一篇论文,我认为该论文的重点是他们汇总和解决更新操作的技术,以便可以同时执行这些操作。


5

我认为您可以在Okasaki的《Purely Functional Data Structures》一书中找到有趣的答案。在本书中,显示了许多数据结构,因此每次更新都不昂贵(通常只需要一个常数或对数时间)。

假设“ d”是必须重新平衡之前的结构。在纯功能数据结构中,您具有持久性数据结构,因此可以 在“ d”中添加,并且需要重新平衡次。这就是为什么摊销的复杂度在这种情况下不起作用的原因,他创建了另一种方法来获得良好的算法,而每个步骤的更新都不昂贵。nn


4
我认为,如果不作进一步修改,纯功能搜索树会序列化所有更新,因此在写争用中表现不佳。
jbapple
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.