Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An Evaluation of WebAssembly and eBPF as Offloading Mechanisms in the Context of Computational Storage #280

Open
gaocegege opened this issue Nov 9, 2021 · 1 comment

Comments

@gaocegege
Copy link
Member

gaocegege commented Nov 9, 2021

朋友推荐

https://arxiv.org/pdf/2111.01947.pdf

相关文章:https://sniacmsiblog.org/2021/07/what-is-ebpf-and-why-does-it-matter-for-computational-storage/

@gaocegege
Copy link
Member Author

gaocegege commented Nov 9, 2021

这篇文章以 Near-Data & Near-Storage Processing 作为需求场景,评测了 WebAssembly 和 eBPF 在这个领域的指标。Near-Data Processing 是指把计算往数据上靠,降低数据搬运成本的处理方式。这个概念之前在 Hadoop 里流行了好多年了,之前随着 Kubernetes 的出现,走向了存储计算分离的趋势。现在又重新有了一些热度。

Near-Storage Processing 是指把计算往存储设备上靠。现在的一些新的硬件被称作 Computational Storage Device 可计算的存储设备,比如三星 SmartSSD

截屏2021-11-09 上午11 31 05

它们在存储设备里加了一些可以计算的单元,使得数据的处理可以在存储设备里直接来做,避免在内存/显存/持久化存储里搬来搬去的。这样的新的可计算设备,需要兼容性比较好的 VM 支持其可编程。eBPF 和 wasm 作为比较流行的两个可执行的格式(?)就成为了备选方案。

eBPF 是基于寄存器的实现,wasm 是基于栈的实现,两种方式的区别可以谷歌一下,简单总结基于栈的实现可移植性会比较好,毕竟不是所有的设备都有寄存器。基于寄存器的实现指令更紧凑,性能稍微好一些。

截屏2021-11-09 上午11 44 39

整篇文章的总结就是上图。这里我比较关注 tooling。文章提到 wasm 的三个比较流行的实现是 GraalVM wasmer wasmtime。

截屏2021-11-09 上午11 46 32

现在来看 wasmer 应该已经口碑崩盘了,国内的 wasmedge 反而值得关注。

eBPF 的话,uBPF 和 rBPF 这样的 user space eBPF VM 都不是很容易 debug,也不是非常成熟

总结全文作者认为 wasm 更加成熟一点,eBPF 如果想进入数据处理领域,还有一段距离。这也合理,毕竟 eBPF 最初也不是为了这个场景设计的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant