valeriansaliou/sonic

Make all commands ASYNC (dispatch to worker thread pool)

Open

#43 opened on Mar 15, 2019

View on GitHub
 (7 comments) (0 reactions) (0 assignees)Rust (21,176 stars) (613 forks)batch import
enhancementhelp wanted

Description

Currently, commands are processed synchronously in the channel thread. This limits parallelization on setups that open very few Sonic Channel instances, but where Sonic runs on a lot of CPUs. Currently 1 channel = 1 thread; but we'd like to make the channel protocol fully asynchronous and thus Sonic will be able to dispatch commands for work to a thread pool.

We just need to figure out how we can rework the protocol so that a RES for a REQ can be caught later on (eg. with a marker ID as we already do for search queries with PENDING?).

Contributor guide