与“随机写入操作”相比,“追加操作”有哪些例子?

与“随机写入操作”相比,“追加操作”有哪些例子?

我刚刚读完了 Google 文件系统 (GFS) 的论文。论文中说 GFS 是

optimized for appending operations rather than random writes. 

看到整篇论文都在强调这个特点,我认为它一定非常重要。

作为一个没有任何工作经验的学生,Appending OperationsGoogle 所说的现实生活中的例子有哪些?听起来相当激烈。

(我认为日志是附加内容较多的。也许还有电子邮件?)

答案1

是的,日志是附加操作的典型示例。电子邮件依赖于实现。例如,Maildir 格式的电子邮件存储每个文件一封电子邮件,因此无需附加。使用 mbox 格式,所有电子邮件都在一个文件中,因此新电子邮件会添加到末尾 - 它们被附加。

数据库更新是随机写入类型操作的一个例子,例如,如果您决定更新数据库中每个人的名字,这将导致对包含数据库的文件中间进行一系列写入。

Google 在此处所说的是,为了保持最佳性能,如果可以的话,请将新信息添加到现有文件的末尾,而不是修改其中已有的内容。如果您需要从文件中删除数据,则只需以某种方式标记它,并在性能不重要时(例如在清理批处理作业中)稍后将其删除。mbox 格式的电子邮件存储就是一个例子。如果您删除了一封电子邮件,则只会在单独的文件中进行跟踪。然后,您可以“压缩”该文件,这样可以有效地重写文件而不删除已删除的电子邮件。

相关内容