<!-- found by Wikipedia:Typo Team/moss -->
Safe semantics is a computer hardware consistency model. It describes one type of guarantee that a data register provides when it is shared by several processors in a parallel computer or in a network of computers working together.
History
Safe semantics was first defined by Leslie Lamport in 1985. It was formally defined in Lamport's "On Interprocess Communication" in 1986.
Safe register has been implemented in many distributed systems.
Description
Safe semantics are defined for a variable with a single writer but multiple readers (SWMR). A SWMR register is safe if each read operation satisfies these properties:thumb|Safe register-no overlapping
- A read operation not concurrent with any write operation returns the value written by the latest write operation.
- A read operation that is concurrent with a write operation may return any value within the register's allowed range of values (for example; 0, 1, 2, …). thumb|safe register-overlapping
In particular, given concurrency of a read and a write operation, the read can return a value that has not been written by a write. The return value need only belong to the register domain.
A binary safe register can be seen as modeling a bit flickering. Whatever the previous value of the register is, its value could flicker until the write finishes. Therefore, the read that overlaps with a write could return 0 or 1.
Churn refers to the entry and exit of servers to/from a distributed system. Baldoni et al. show that no register can have the stronger property of regular semantics in a synchronous system under continuous churn. However, a safe register can be implemented under continuous churn in a non-synchronous system. Client systems contains a finite, arbitrary number of processes that are responsible for reading and writing the server system. However, the server system must ensure that read and write operations happen properly.
Implementation
Safe register implementation involves:
Safe register is maintained by the set of active servers.
Clients maintain no register information.
Eventually synchronous system
Quora (set of server or client systems)
Size of the Read and Write operation executed on quora = n – f – J ( is the number of servers, is the number of servers that enter and exit, and is the number of Byzantine failures.
Algorithms such as join, read, and write.
