Erlang/Elixir 搞了个 awesome-otp-learning

yfractal · 2020年02月22日 · 最后由 lanzhiheng 回复于 2020年03月01日 · 3899 次阅读

并行、并发编程是计算机里非常有趣的主题。而 Erlang 或者说 OTP 无疑是做的最好的。

但 OTP 相关的资料却非常少。

比如存储,关于 ETS 的实现几乎找不到,但同类型的 Redis,却有一大把。

而且 ETS 要比 Redis 有趣的多,ETS 可以充分利用多核资源,而 Redis 是单线程的。

这对想了解 OTP 的人,是一件很遗憾的事。

所以开了这个 awesome-otp-learning 这个 repo,用来收集 OTP 内部实现相关的资料。

希望可以抛砖引玉。

Redis 也有多线程版本 https://github.com/JohnSully/KeyDB,但不是官方的。

而且实现的似乎也比较粗糙:

KeyDB works by running the normal Redis event loop on multiple threads. Network IO, and query parsing are done concurrently. Each connection is assigned a thread on accept(). Access to the core hash table is guarded by spinlock.

感觉在 CPU 核数很多的时候,性能会不会随着核数的增多而线性增长。

Redis 可以做集群,来分表,一定程度上,也可以利用多核。

话说回来,现在一般服务器,8 core 也就到头了,能充分利用多核,也不见得是会带来多少实惠。但这件事本身很有趣。

这是 Beam 开发者独享的 moment

需要 登录 后方可回复, 如果你还没有账号请 注册新账号