100 likes | 243 Views
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. Traditional DBMS vs NoSQL. Traditional DBMS Structured and organized data
E N D
NoSQL looks to become the database of the InternetBy Lawrence LatifWed Dec 22 2010 Nhu Nguyen and Phai Hoang CSCI 5708 – Architecture and Impl. Of DBMS Prof. Shashi Shekhar
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
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.
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
What kind of NoSQL? • Object Databases • Ex: Versant • RDF Databases • BigTable, Apache Hbase
Limitations of NoSQL relative to RDBMS ACID transactions (strong consistency) May not support join, range query Facebook and Twitter were built on mySQL
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”), getSlicePredicate());
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, B, and D exists. • B responsible for AB range. • D responsible for BD range. • A responsible for DA range. • C joins. • B, D split ranges. • C gets BC from D.
References NoSQL looks to become the database of the Internet , Inquirer, Dec. 2010 http://www.theinquirer.net/inquirer/feature/1933560/nosql-looks-database-internet NoSql, Wikipedia