ERnsTL / flowd

An inter-language runtime for flow-based programming (FBP)
Other
25 stars 2 forks source link

Optimize message transfer performance between processes #203

Open ERnsTL opened 2 years ago

ERnsTL commented 2 years ago

References:

What we need:

Transfer:

Notification:

Solutions/modules:

Ringbuffers:

Channel-like:

io_uring:

semaphore

condvar + Mutex:

-> Fast for the Rust-Rust case and for C-based (shmem-ipc) and for the others there will be various component APIs (stateful, stateless etc.) which require a translator component which translates from shmem-ipc to Javascript buffers or whatever.

Winner of performance tests:

Round 2:

Round 3: