NoSQL: Difference between revisions
entry w.o. article |
→Architecture: try to explain green badges without too much jargon (fotoguzzi) |
||
Line 16: | Line 16: | ||
Typical modern relational databases have shown poor performance on data-intensive applications including [[Index (search engine)|indexing]] a large number of documents, [[Web server|serving pages]] on high-traffic websites and delivering [[streaming media]].<ref name="Agrawal2008">{{cite journal|author = Agrawal, Rakesh et al. |title = The Claremont report on database research |journal = SIGMOD Record |volume = 37 |number = 3 |year = 2008 |issn = 0163-5808 |pages = 9--19 |doi = http://doi.acm.org/10.1145/1462571.1462573 |publisher = [[Association for Computing Machinery|ACM]] |
Typical modern relational databases have shown poor performance on data-intensive applications including [[Index (search engine)|indexing]] a large number of documents, [[Web server|serving pages]] on high-traffic websites and delivering [[streaming media]].<ref name="Agrawal2008">{{cite journal|author = Agrawal, Rakesh et al. |title = The Claremont report on database research |journal = SIGMOD Record |volume = 37 |number = 3 |year = 2008 |issn = 0163-5808 |pages = 9--19 |doi = http://doi.acm.org/10.1145/1462571.1462573 |publisher = [[Association for Computing Machinery|ACM]] |
||
}}</ref> They can be efficient only when they are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses, while there are demands for data stores capable of heavy workloads with frequent updates.<ref name="Agrawal2008"/> Real-world examples include [[Digg]]'s 3 [[Terabyte|TB]] for green badges,<ref>{{cite web|url=http://about.digg.com/blog/looking-future-cassandra |title=Looking to the future with Cassandra | Digg About |publisher=About.digg.com |date=2009-09-09 |accessdate=2010-03-29}}</ref> [[Facebook]]'s 50 TB for inbox search and [[eBay]]'s 2 [[Petabyte|PB]] overall data. |
}}</ref> They can be efficient only when they are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses, while there are demands for data stores capable of heavy workloads with frequent updates.<ref name="Agrawal2008"/> Real-world examples include [[Digg]]'s 3 [[Terabyte|TB]] for green badges (markers that indicate stories upvoted by others in your social network),<ref>{{cite web|url=http://about.digg.com/blog/looking-future-cassandra |title=Looking to the future with Cassandra | Digg About |publisher=About.digg.com |date=2009-09-09 |accessdate=2010-03-29}}</ref> [[Facebook]]'s 50 TB for inbox search and [[eBay]]'s 2 [[Petabyte|PB]] overall data. |
||
NoSQL architectures often provide weak consistency guarantees such as [[eventual consistency]] and/or [[Database transaction|transactions]] restricted to single data items. Some systems however, provide full [[ACID]] guarantees, in some instances by adding a supplementary middleware layer (e.g. CloudTPS<ref>{{cite web|url=http://www.globule.org/publi/CSTWAC_ircs53.html |title=CloudTPS: Scalable Transactions for Web Applications in the Cloud |publisher=Globule.org |date= |accessdate=2010-03-29}}</ref>). |
NoSQL architectures often provide weak consistency guarantees such as [[eventual consistency]] and/or [[Database transaction|transactions]] restricted to single data items. Some systems however, provide full [[ACID]] guarantees, in some instances by adding a supplementary middleware layer (e.g. CloudTPS<ref>{{cite web|url=http://www.globule.org/publi/CSTWAC_ircs53.html |title=CloudTPS: Scalable Transactions for Web Applications in the Cloud |publisher=Globule.org |date= |accessdate=2010-03-29}}</ref>). |
Revision as of 16:39, 8 August 2010
In computing, NoSQL is a term used to designate databases which differ from classic relational databases in some way. These data stores may not require fixed table schemas, usually avoid join operations and typically scale horizontally. Academics and papers typically refer to these databases as structured storage[1][2][3][4], a term which would include classic relational databases as a subset.
Notable production implementations include Google's BigTable and Amazon's Dynamo.
History
The term NOSQL (Not Only SQL) was used in 1998 as the name for a lightweight open source relational database that did not expose a SQL interface. Its author, Carlo Strozzi, claims that as the NoSQL movement "departs from the relational model altogether it should therefore have been called more appropriately 'NoREL', or something to that effect".[5]
Eric Evans, a Rackspace employee, reintroduced the term in early 2009 when Johan Oskarsson of Last.fm wanted to organize an event to discuss open-source distributed databases.[6] The name attempted to label the emergence of a growing number of non-relational, distributed data stores that often did not attempt to provide ACID guarantees (the key attributes of classic relational database systems such as MySQL, MS SQL, PostgreSQL, etc).
Architecture
Typical modern relational databases have shown poor performance on data-intensive applications including indexing a large number of documents, serving pages on high-traffic websites and delivering streaming media.[7] They can be efficient only when they are tuned either for small but frequent read/write transactions or for large batch transactions with rare write accesses, while there are demands for data stores capable of heavy workloads with frequent updates.[7] Real-world examples include Digg's 3 TB for green badges (markers that indicate stories upvoted by others in your social network),[8] Facebook's 50 TB for inbox search and eBay's 2 PB overall data.
NoSQL architectures often provide weak consistency guarantees such as eventual consistency and/or transactions restricted to single data items. Some systems however, provide full ACID guarantees, in some instances by adding a supplementary middleware layer (e.g. CloudTPS[9]).
Several NoSQL systems employ a distributed architecture, with the data held in a redundant manner on several servers, often using a distributed hash table. In this way the system can readily scale up by adding more servers, and failure of a server can be tolerated.[10]
Some NoSQL advocates[who?] promote very simple interfaces such as associative arrays or key-value pairs. Other systems, such as native XML databases, promote support of the XQuery standard.[citation needed]
Taxonomy
![]() |
NoSQL implementations can be categorized by their manner of implementation:
- Key/value store on disk
- Key/value cache in RAM
- Eventually‐consistent key‐value store
- Key-value stores implementing
- Ordered key-value store
- Multivalue databases
- OpenQM
- Rocket U2
- Revelation Software's OpenInsight
- Tabular
- Tuple store
- Unknown
See also
References
- ^ Hamilton, James (3 November 2009). "Perspectives: One Size Does Not Fit All". Retrieved 13 November 2009.
- ^ Lakshman, Avinash; Malik, Prashant. "Cassandra — A Decentralized Structured Storage System" (PDF). Cornell University. Retrieved 13 November 2009.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^
Chang, Fay. "Bigtable: A Distributed Storage System for Structured Data" (PDF). Google. Retrieved 13 November 2009.
{{cite journal}}
: Cite journal requires|journal=
(help); Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Kellerman, Jim. "HBase: structured storage of sparse data for Hadoop" (PDF). Retrieved 13 November 2009.
- ^ "NoSQL Relational Database Management System: Home Page". Strozzi.it. 2007-10-02. Retrieved 2010-03-29.
- ^ "NOSQL 2009". Blog.sym-link.com. 2009-05-12. Retrieved 2010-03-29.
- ^ a b Agrawal, Rakesh; et al. (2008). "The Claremont report on database research". SIGMOD Record. 37 (3). ACM: 9--19. doi:http://doi.acm.org/10.1145/1462571.1462573. ISSN 0163-5808.
{{cite journal}}
: Check|doi=
value (help); Explicit use of et al. in:|author=
(help); External link in
(help)|doi=
- ^ "Looking to the future with Cassandra | Digg About". About.digg.com. 2009-09-09. Retrieved 2010-03-29.
- ^ "CloudTPS: Scalable Transactions for Web Applications in the Cloud". Globule.org. Retrieved 2010-03-29.
- ^ "Cassandra: Structured Storage System over a P2P Network" (PDF). Retrieved 2010-03-29.