phaistos-networks / TANK

A very high performance distributed log service
Apache License 2.0
938 stars 70 forks source link

Adopt C++2a coroutines and io_uring #71

Open markpapadakis opened 4 years ago

markpapadakis commented 4 years ago

C++2a coroutines are extremely powerful. As far as I am concerned, its the most important high-impact feature to be introduced in the langue together with lambdas and move semantics.

We will use c++2a coroutines to improve the performance of TANK, by moving potentially expensive tasks off the main reactor thread to thread pools, and by potentially switching to a different I/O design based on io_uring or something else where we 'll just suspend the current coroutine until the I/O operation is complete and the coroutine can be resumed.