根据网络百科,它是指处理器既读又写总线…不允许其他处理器访问。
根据wikipedia
,在数据库中,这意味着一组操作要么全部发生,要么没有发生。在并发编程中,它意味着一组操作在系统中瞬间发生wikipedia
但是我需要知道原子性在文件系统上下文中指的是什么,特别是Google文件系统
似乎是一个被人们过度使用的词,它听起来很酷……但是关于文件系统有没有一个更学术的定义?
它似乎原子指的是不打破的东西,即原子…一般情况下。我经常听到Google文件系统使用原子读和原子写这个术语。
我猜这意味着它完全发生或根本不发生,在一个"步骤"中。指时间(瞬间出现)与构图(各部分完成)的统一。
这听起来对吗?
没错。这是一个基本的属性,即使某些操作可能由一组较小的步骤组成,您也永远不会在其中一些步骤(而不是所有步骤)已经发生的状态下观察到它。
你的定义似乎很合理。MIT有一个很棒的演讲是关于计算机软件和硬件的原子性。我对您的定义有一个小小的不满,那就是您使它看起来像是在一个步骤中发生了一些"原子"的事情。这既对又错。
正如你将在讲座中看到的,原子性是这样定义的:
Recoverable + Isolated = Atomic
A sequence of composite steps but whose invoker cannot discover is composite.
这里的主要思想是"原子"的东西可以在离散的步骤中分离(在实现中),但调用者永远不会知道这一点。例如,即使原子写也有多个步骤。
摘自Seth Gilbert和Nancy Lynch撰写的Brewer猜想和一致、可用、分区容忍Web服务的可行性:
原子一致性或线性一致性是大多数人期望的条件今天的Web服务在这种一致性保证下,必须存在所有操作的总顺序,使每个操作看起来仿佛一切都是瞬间完成的。这等于。要求分布式共享内存的请求就像它们一样在单个节点上执行,每次响应一个操作时间。原子读/写共享内存的一个重要属性是在写操作完成后开始的任何读操作必须返回该值,或者返回后一次写操作的结果。