NoSQL looks to become the database of the Internet
Download
Report
Transcript NoSQL looks to become the database of the Internet
CSCI5708
NoSQL looks to become the
database of the Internet
By Lawrence Latif
Wed Dec 22 2010
Nhu Nguyen and Phai Hoang
CSCI 5708 – Architecture and Impl. Of DBMS
Prof. Shashi Shekhar
Changwon Nati Univ.
ISIE 2001
Traditional DBMS vs NoSQL
Traditional DBMS
– Structured and organized data
– Data and its relationships are stored in separate tables.
NoSQL
– Stands for Not Only SQL ( ≠ Don’t use SQL Language)
–
–
–
–
–
Flexible schema
Key-Value pair storage
Eventual consistency rather ACID property
Unstructured, messy and unpredictable data
Prioritizes high performance, high availability and scalability
1
History of NoSQL
1998:
– Carlo Strozzi used the term NoSQL to name his lightweight,
open-source relational database.
Early 2000s:
– NoSQL fell out of favour in the early 2000s.
– Hosting providers such as Dedipower promoted it as an
alternative to traditional db.
Nowadays
– Web giants such as Amazon, Google, Twitter, Ebay and
Facebook already use NoSQL implementation.s to power
customer facing parts of their businesses.
2
What kind of NoSQL?
Key/Value or ‘the big hash table’.
– Using Hash table
• Data model: (key, value) pairs
• Operations: Insert(key,value), Fetch(key), Update(key), Delete(key)
– Ex: Amazon Dynamo, LinkedIn Voldemort
Column Family Store
– Still keys but point to multiple columns
– Ex: Cassandra, HBase
Document database
– Ex: CouchDB, MongoDB
Graph Database
– Ex: Neo4J, InfoGrid, Infinite Graph
3
What kind of NoSQL?
Object Databases
– Ex: Versant
RDF Databases
– BigTable, Apache Hbase
4
Limitations of NoSQL relative to
RDBMS
ACID transactions (strong consistency)
May not support join, range query
Facebook and Twitter were built on mySQL
5
Example: Apache Cassandra
Free, open source, distributed storage
Exists within the Apache family
Originally developed at Facebook
Column-oriented data model
Uses Apache Thrift as it’s API
– keyspace.getSlice(key, “column_family”, "column")
– keyspace.getSlice(123, new ColumnParent(“rockets”), getSlice
Predicate());
6
Hashing in Cassandra
Partition using consistent hashing
– Keys hash to a point on a fixed circular
space
– Ring is partitioned into a set of ordered slots and
servers and keys hashed over these slots
Nodes take positions on the circle.
A
A, B, and D exists.
V
– B responsible for AB range.
– D responsible for BD range.
– A responsible for DA range.
S
D
C joins.
– B, D split ranges.
– C gets BC from D.
R
H
M
7
C
B
References
NoSQL looks to become the database of the Internet ,
Inquirer, Dec. 2010
http://www.theinquirer.net/inquirer/feature/1933560/n
osql-looks-database-internet
NoSql, Wikipedia
8
Thank you
9