文件系统上下文中的原子性是什么?

时间:2011-10-17 04:28:18

标签: filesystems terminology atomicity gfs

根据webopedia,当处理器读取和写入总线时......不包括其他处理器访问它。

在数据库中,根据wikipedia

,这意味着一组操作全部发生或者没有发生。

在并发编程中,这意味着系统wikipedia

看到一组操作即时发生

但是,我需要知道文件系统环境中的原子性,特别是Google文件系统。

似乎是人们使用b.c的一个过度使用的词。这听起来很酷..但是在文件系统方面有更多的学术定义吗?

在一般情况下,似乎原子是指不破坏某些东西,即原子......我一直听到用于Google文件系统的原子读取和原子写入一词。

我的猜测意味着它完全发生或根本不发生在一个“步骤”中。参考时间的统一(即时出现)和构图(所有部分都已完成)。

这听起来不错吗?

3 个答案:

答案 0 :(得分:2)

没错。这是基本属性,即使某些操作可能包含较少的一组步骤,但您仍然无法在某些但不是所有步骤都发生的状态下观察它。

答案 1 :(得分:1)

你的定义似乎很合理。关于计算机软件和硬件的原子性,麻省理工学院有一个很好的谈话here。我对你的定义抱有一个小抱怨,就是你看起来好像某个步骤中出现了“原子”。这是对与错。

正如您在演讲中所看到的,原子性由以下定义:

Recoverable + Isolated = Atomic
A sequence of composite steps but whose invoker cannot discover is composite.

这里的主要思想是“原子”可以在不连续的步骤中分离(在实现中),但是调用者永远不会知道这一点。例如,即使是原子写也有多个步骤。

答案 2 :(得分:0)

来自 Brewer的猜想以及Seth Gilbert和Nancy Lynch撰写的一致,可用,分区容忍Web服务的可行性

  

原子或线性化的一致性是大多数人所期望的条件   今天的网络服务.3在这种一致性保证下,必须有   存在所有操作的总订单,使每个操作看起来   仿佛它是在一瞬间完成的。这相当于o   要求分布式共享内存的请求就像它们一样   正在一个节点上执行,响应a处的操作   时间。原子读/写共享内存的一个重要特性是   在写操作完成后开始的任何读操作   必须返回该值,或后续写操作的结果。