#map #mpmc #async

mpmc-map

适用于高度并发且写入频率低的异步map实现

8个版本

0.2.0 2021年5月4日
0.1.6 2021年4月29日

#1174并发


3 个crates中使用了 (通过 snarkos-network)

GPL-3.0-or-later

10KB
209

mpmc-map

目的

此crate提供了一个快速最终一致的多生产者多消费者map。适用于高读低写环境。

设计

MpmcMap 由一个 arc-swapim::HashMap 支持。我们使用actor模型,通过一个 tokio::sync::mpsc 通道接收事件到更新任务,该任务将应用更新并更新内部map。

不适用此crate的情况

在高写入环境中,此crate将有较高的开销。如果您有很多写入操作,请寻找具有防抖功能的最终一致map实现,例如 evmap

或者,当然,提交一个PR来添加此功能!

依赖

~3–4.5MB
~73K SLoC