作者:draculaqian,腾讯后台开发工程师
引言存储场景中,我们对性能的要求非常高。在存储引擎底层的IO技术选型时,可能会有如下讨论关于IO的讨论。
——AlbertEinstein
追求真理的人不可避免地追求永恒。“*治只是一时,方程却是永恒。”——爱因斯坦如是说,时值以色列的第一任总统魏兹曼于年逝世,继任首相古理安建议邀请爱因斯坦担任第二任总统。
我们说折衷权衡、精益求精,字里行间都是永恒,然而软件应该持续重构,这实际上并不只是io_uring需要做的,有机会我会写一篇关于重构的文章。
总结首先,本文简述了Linux过往的的IO发展历程,同步IO接口、原生异步IO接口AIO的缺陷,为何原有方式存在缺陷。其次,再从设计的角度出发,介绍了最新的IO引擎io_uring的相关内容。最后,深入最新版内核linux-5.10中解析了io_uring的大体实现(关键数据结构、流程、特性实现等)。
关于难免纰漏,欢迎交流,可以通过以下网址找到本文。
知乎: