-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Hey,
Really neat project, reading through it felt like a breeze, it's some of the most beautiful Rust I've ever seen.
From my understanding of the thread per core architecture, one is supposed to partition load in a way, where requests can be routed to specific cores(shards) to perform the operation (for example by using the partition id as the identifier of shard that's supposed to serve the request) and only communicate via channels (no shared state). This guarantees some benefits such as lack of need for locks.
Reading through your code, I can't seem to find such router, instead there is a send_request_to_local_shards that on request received for example CreateCollection, sends message to all of the shards except the currently used one, which appears like it performs the same operation N times locally ? I wonder if is there something that I am missing, maybe some detail about glommio, I am using monoio for my project and currently looking around for some inspiration. As of right now my main source of knowledge is project Sphinx by Pekka Enberg.