如何在NVMe SPDK中使用MySQL数据库?



我看了文档,在示例中没有看到任何实际的实现案例。

有人知道如何确保通过Intel NVMe SPDK处理对数据库服务器的传入请求吗?

您需要开发一个自定义存储引擎。

MySQL中现有的存储引擎使用POSIX调用I/O。换句话说,它们调用标准核函数。通过这种方式,它们可以支持各种存储设备和具有可移植代码的操作系统。

根据我对SPDK的理解,它是一个用户空间代码入口点库,绕过操作系统内核的I/O接口,直接读写NVMe。

所以我认为需要完全重写MySQL存储引擎中的I/O代码来利用SPDK。这也会使存储引擎无法携带。它只能在使用NVMe存储设备的主机上工作。

那么你需要花大约25年的时间优化它,以匹配例如InnoDB代码的成熟水平。仅仅使用相同的使用模式进行相同的I/O调用可能不是利用NVMe驱动器的最佳方式。

即使你做了所有这些,你可能也不会发现它给你一个像MySQL这样复杂的服务的整体性能带来很大的提高。如果您的数据库受I/O限制,那么您已经输了。提高性能的更好方法是不做I/O,而是在RAM中读写数据。即使与NVMe存储相比,RAM延迟仍然至少低三个数量级。

最新更新