GFS provides a custom consistency model for write operations.

The state of a file region after a mutation depends on the type of mutation, whether it succeeds or fails and whether there are concurrent mutations.

Note: A file region is consistent if all clients will always see the same data, regardless of the replica they read from.

A region within a file

A region is defined after a file data mutation if it is consistent and clients will see what the mutation writes in its entirety.

A region can be:

  • Defined and consistent: When a mutation succeeds without interference from concurrent writes, the affected region is defined. All clients will always see what the mutation has written.
  • Undefined but consistent: Concurrent successful mutations leave the region undefined but consistent. All the clients see the same data, but it may not reflect what any one mutation has written. Typically, it consists of mingled fragments from multiple mutations.
  • Both inconsistent and undefined: A failed mutation makes the region inconsistent. Different clients may see different data at times.

Get hands-on with 1200+ tech skills courses.