3 ms·
Love these kind of animations I have my own animation here - if you scroll down. You can see the parsing I do for an async syntax (scroll to the hearing named
by samsquire 3y ago
Love these kind of animations
I have my own animation here - if you scroll down. You can see the parsing I do for an async syntax (scroll to the hearing named Definition) - you can edit the syntax and it reparses and displays the parsed output. Sorry for the mess it's kind of a place I work on ideas. Further down is my graph renderer.
https://processes3.replit.app/ https://processes3.replit.app/
I want to auto parallelize async tasks.
I am working on a multithreaded runtime in C which is incomplete but can communicate between threads in roughly 60 nanoseconds at 6 million requests per second or closer to LMAX throughout of 20 million requests per second at a latency of 90-120 nanoseconds.
In my learnings Mutexes do not scale.
I am inspired by bulk synchronous parallel which means threads synchronize in a rhythm without Mutexes and a lock free algorithm to do with semaphores and observation rather than mutability.
I run two io_urings in different threads - one thread does send and another thread does recv. One ioring is talking to an epoll instance for network buffer readiness with EPOLLOUT.This means sending and receiving is full duplex - you can send and receive to different clients in parallel. I call it split IO.
I plan to write up all my learnings soon.
My adapted HTTP server from the loti examples gets a throughout that scales with the number of connections I am at 7000 requests per second. I am not nginx.
I use mailboxes and double buffering for thread safe communication. Each thread can communicate with another thread through its mailbox. This is like Erlang.
I plan to add coroutines based on Marce Colls coroutines. I can deschedule a coroutine when there is an await.