Shared-nothing architecture
A shared-nothing architecture (SN) is a distributed computing architecture in which each update request is satisfied by a single node (processor/memory/storage unit) in a computer cluster. The intent is to eliminate contention among nodes. Nodes do not share (independently access) the same memory or storage. One alternative architecture is shared everything, in which requests are satisfied by arbitrary combinations of nodes. This may introduce contention, as multiple nodes may seek to update the same data at the same time.
There are three main parallel database architectures: shared-memory, shared-disk and shared nothing. Shared-memory is used for in-memory databases, and shared-disk for small clusters. Shared nothing is becoming the dominant technology since it works anywhere, from on-premise cluster to private or public cloud. The main challenge is to attain linear scalability and transactional (ACID) consistency. Initially, key-value NoSQL systems have been able to achieve linear scalability, but by sacrificing transactional consistency. More recently, a few NewSQL systems have been able to achieve both linear scalability and transactional consistency.[1] Some examples are CockroachDB, Google Spanner, LeanXcale, NuoDB and Yugabyte.
SN eliminates single points of failure, allowing the overall system to continue operating despite failures in individual nodes and allowing individual nodes to upgrade without a system-wide shutdown.[2]
A SN system can scale simply by adding nodes, since no central resource bottlenecks the system.[3] In databases, a term for the part of a database on a single node is a shard. A SN system typically partitions its data among many nodes. A refinement is to replicate commonly used but infrequently modified data across many nodes, allowing more requests to be resolved on a single node.
History
Michael Stonebraker at the University of California, Berkeley used the term in a 1986 database paper.[4] Teradata delivered the first SN database system in 1983.[5] Tandem Computers released NonStop SQL, a shared nothing database, in 1984.[6]
Applications
Shared-nothing is popular for web development.
Shared-nothing architectures are prevalent for data warehousing applications, although requests that require data from multiple nodes can dramatically reduce throughput.[7]
See also
References
- ^ "The Case for Shared Nothing – LeanXcale". Retrieved 2022-04-18.
- ^ Wright, Dave (2014-09-17). "The Advantages of a Shared Nothing Architecture for Truly Non-Disruptive Upgrades". netapp.com. Retrieved 2019-10-31.
- ^ Blankenhorn, Dana (February 27, 2006). "Shared nothing coming to open source". ZDNet. Retrieved June 21, 2012.
- ^ Michael Stonebraker (1986). "The Case for Shared Nothing Architecture" (PDF). Database Engineering. 9 (1).
- ^ "Teradata History". Teradata.com. Retrieved 2013-06-16.
- ^ NonStop SQL, A Distributed, High-Performance, High-Availability Implementation of SQL, Tandem Technical Report TR-87.4
- ^ "Article on Shared Nothing from the point of view of a Shared Nothing Vendor" (PDF).