Shared nothing architecture
From Wikipedia, the free encyclopedia
A shared nothing architecture (SN) is a distributed computing architecture where each node is independent and self-sufficient, and there is no single point of contention across the system. People typically contrast SN with systems that keep a large amount of centrally-stored state information, whether in a database, an application server, or any other similar single point of contention. While SN is best known in the context of web development, the concept predates the web: Michael Stonebraker at UC Berkeley used the term in a 1986 database paper, and it is possible that earlier references also exist.
Shared Nothing is popular for web development because of its scalability. As Google has demonstrated, a pure SN system can scale almost indefinitely simply by adding nodes in the form of inexpensive computers, since there's no single bottleneck to slow the system down. Three popular web development technologies, PHP, Django, and Ruby on Rails, all emphasize an SN approach, in contrast to technologies like J2EE that manage a lot of central state. An SN system may partition its data among many nodes (assigning different computers to deal with different users or queries), or may require every node to maintain its own copy of the application's data, using some kind of coordination protocol.
There is some debate about whether a web application with many independent web nodes but a single, central database (clustered or otherwise) should be counted as SN.
[edit] External reference
- Michael Stonebraker (UC Berkeley), The Case for Shared Nothing Architecture (PDF). Originally published in Database Engineering, Volume 9, Number 1 (1986).