연구 분야: Databases
학회: International Conference on Cloud Computing
With constant hardware improvements allowing for increasingly large memory sizes, in-memory database servers have become an attractive option for various cloud applications. Even though in-memory database servers store all data in memory, there is still a need to persist data onto an I/O device for maintenance, updates, or protection against server crashes. In high throughput environments, persistence happens often, significantly hindering server throughput performance. Although popular in-memory database servers such as Redis or Dragonfly DB have adopted asynchronous I/O for socket operations, none have extended this approach for persistence. This results in significantly longer time taken for persistence, leading to prolonged reduced throughput. Given the recent introduction of io_uring, which has demonstrated significant performance improvements over past asynchronous I/O APIs, we have decided to implement it into Redis to evaluate its effectiveness in reducing these performance overheads. Our findings indicate that io_uring can significantly enhance performance in use cases with medium to large payload sizes but may hinder performances in use cases involving small payload sizes due to higher complexity and higher operation cost per datapoint. This method can likely be applied to other servers, such as Dragonfly DB and Memcached, to achieve similar benefits in appropriate scenarios. Additionally, in-memory database server persistence can serve as valuable benchmarks for further io_uring development and optimization.
| 발행 연도 | 2024년 |
|---|---|
| 인용수 | 0 |
| 출판 국가 | Andorra, Japan |
| 사이트 | Springer |
| 좋아요 수 | 0 |