Erlang/Elixir 搞了个 awesome-otp-learning

yfractal · February 22, 2020 · Last by lanzhiheng replied at March 01, 2020 · 3880 hits

并行、并发编程是计算机里非常有趣的主题。而 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

You need to Sign in before reply, if you don't have an account, please Sign up first.