logoalt Hacker News

Silk: Open-source cooperative fiber scheduler

94 pointsby animetyanlast Wednesday at 5:15 PM14 commentsview on HN

Comments

cyphartoday at 5:07 PM

It's interesting how some ideas very quickly start popping up everywhere at once. One of my colleagues was working on adding support for fibers to systemd for some time (and the PR was merged a few days ago[1]!). From my understanding, this model is really quite useful for programs like pid1 that cannot use threads.

[1]: https://github.com/systemd/systemd/pull/39771

show 1 reply
audidudetoday at 3:48 PM

I've been doing this with something very similar in GNOME for years now. It also does io_uring, threadpool schedulers, workstealing, "pollable semaphores" (like IRIX), profiler integration, and makes fibers implemented as futures themselves.

https://github.com/GNOME/libdex/

nasretdinovtoday at 9:18 AM

Looks really interesting. I assume this suggests that ClickHouse is going to gradually switch to using this library for network and I/O, thus addressing the main weakness (in my mind) of C++ thread-per-connection servers, which is, they (surprisingly!) create too many threads and can't really handle more than, say, a thousand active connections at the same time. It mostly matters for async INSERTs in this case of course, not for SELECTs, although generally it applies to both.

jeffreygoestotoday at 9:52 AM

Is this comparable to Sea star [0]?

[0] https://github.com/scylladb/seastar

endukutoday at 11:34 AM

The `Cilk` angle is interesting. There’s still room for small runtimes focused just on fork/join recursion.

I’ve been working on one for C: https://github.com/xtellect/cactus

It’s narrower than Silk/SeaStar: continuation stealing for CPU-bound recursive code, not a general async I/O fiber runtime.

bbkanetoday at 1:27 PM

Looks like its using MinIO for the S3 benchmark, which is now archived. I wonder what they'll switch to (if anything)

feverzsjtoday at 10:34 AM

Seems not exception safe when task switching during unwind.

znnajdlatoday at 2:11 PM

those who don't learn Erlang/Elixir are bound to reinvent the Erlang VM and OTP model.

show 2 replies
yvdriesstoday at 10:15 AM

Play on Cilk?

idlepigtoday at 10:11 AM

[flagged]

embirdatingtoday at 10:27 AM

[dead]

fleahuntertoday at 1:37 PM

[flagged]

stefantalpalarutoday at 5:38 PM

[dead]

SeattleAntifatoday at 1:15 PM

[dead]