file - 为什么程序要/偏爱使用稀疏文件?

标签 file filesystems sparse-file

我知道sparse file是什么,但是我无法弄清楚为什么lastlog这样的程序比一般文件更喜欢这种文件。

我知道稀疏文件可用于环回文件系统以节省空间,但这显然对程序而言效率不高,因为它是另一层。

我唯一能想到的就是使用稀疏文件对大型多维数组(例如矩阵)进行内存有效的随机访问,但是我什至不确定这是否是人们正在使用稀疏文件的原因(而且我不是甚至可以确定该文件在多个文件中的性能确实更高)。

最佳答案

/var/log/lastlog文件包含有关每个用户的最新登录信息,按uid进行组织。如果未使用uid或该用户从未登录过,则该条目的稀疏文件中将不会存储任何数据。

如果/etc/passwd中的uid编号存在较大的空白,则/var/log/lastlog文件中将相应地存在较大的空白。

这种结构允许多个lastlog进程同时访问/更新文件,而不会发生锁定或损坏的风险。对于更复杂的文件结构,需要有锁来防止在更新文件时损坏。在登录序列中锁定不是一个好主意。

关于file - 为什么程序要/偏爱使用稀疏文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110955/

相关文章:

javascript - Node.js 服务器目录结构应该是什么样的?

database - 与存储系统性质相关的大容量存储图像格式

android - 在下载文件之前预先为其分配空间

java - 输出其中有所需文件的文件夹

java - 如何使用 Java 在文本文件中复制以特定字符开头和结尾的字符串

windows - 在大型目录结构上运行时出现元数据导出错误

python - 在 Python 中获取目录基名的优雅方法?

filesystems - 扩展属性存储在哪里?

linux - 如何从 ESXi 快速复制稀疏文件?

linux - 如何在 Mac 上创建稀疏文件