我正在阅读Google文件系统(GFS)的论文,其中提到GFS使用惰性空间分配来减少内部碎片。
有人能解释一下,惰性空间如何减少内部碎片?
我正在阅读Google文件系统(GFS)的论文,其中提到GFS使用惰性空间分配来减少内部碎片。
有人能解释一下,惰性空间如何减少内部碎片?
采用延迟空间分配的方式,物理空间的分配将被尽可能地推迟,直到累计了大小为块大小(在GFS的情况下为64MB)的数据。换句话说,在磁盘上分配新块之前的决策过程,严重受到要写入的数据大小的影响。这种等待而不是基于其他特征分配更多块的偏好,最大程度地减少了内部碎片(即未使用的64MB块的部分)的机会。
Google的论文还指出:"大多数块都是满的,因为大多数文件包含许多块,只有最后一个块可能是部分填充的。" 因此,创建文件时也采用相同的方法。
这类似于:http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory
数据首先被写入缓冲区。因此,与其在文件创建时分配内存,它们等待实际写入发生。就像XFS中一样http://en.wikipedia.org/wiki/XFS#Delayed_allocation