0

我学习了Mysql的压缩机制,它利用现代文件系统的打孔特性,作为这里的官方文档。

我想知道的是,Mysql 在写入孔但没有物理块时如何处理?

例如,当 Mysql 写入一个 16KB 的页面时,它会将其压缩到 3KB,这需要一个 4KB 的文件系统块。16KB 的页面在存储时仍然占用 16KB 的文件系统地址空间,这将在 'ls' 命令中处理,而仅分配一个 4KB 的 physicle 块,将在“du”命令中处理。其他 12KB 实际上是打孔的,不需要真正的文件系统块。在此之后,空闲文件系统块可能已用完。此时,16KB 的页面被加载、更新并重新压缩到 5KB,现在需要 2 个文件系统块。虽然第二个块是孔,但在刷新到磁盘时需要分配新块。但是,文件系统中没有用于分配的块,所以文件系统会报“no space”错误。Mysql 将如何处理此类错误?

4

0 回答 0