SQL vs NoSQL: The Problem of Data

SQL vs NoSQL: The Problem of Data

http://highscalability.com/blog/2012/1/24/the-state-of-nosql-in-2012.html :: High Scalability - High Scalability - The State of NoSQL in 2012

Similar problems:

Our thinking, exactly:
http://mobiledrupal.com/building-mobile-app-api-using-drupal-nodejs-and-mongodb :: Building a mobile app API using Drupal, Node.js and MongoDB | Mobile Drupal

Instagram
http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of » What Powers Instagram: Hundreds of Instances, Dozens of Technologies - Instagram Engineering
http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram » Sharding & IDs at Instagram - Instagram Engineering
http://instagram-engineering.tumblr.com/post/12202313862/storing-hundreds-of-millions-of-simple-key-value-pairs » Storing hundreds of millions of simple key-value pairs in Redis - Instagram Engineering

Flickr
Normalization is for sissies.
http://code.flickr.com/blog/2010/02/08/using-abusing-and-scaling-mysql-at-flickr/ » Code: Flickr Developer Blog » Using, Abusing and Scaling MySQL at Flickr

SQL

MySQL

HandlerSocket is a NoSQL plugin for MySQL
http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html :: Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server
https://github.com/DeNADev/HandlerSocket-Plugin-for-MySQL :: DeNADev/HandlerSocket-Plugin-for-MySQL
http://www.mysqlperformanceblog.com/2011/03/28/whats-up-with-handlersocket/ :: What’s up with HandlerSocket? - MySQL Performance Blog

PHP Application Sharding
http://code.google.com/p/shard-query/ :: shard-query - Shard-Query is a distributed parallel query engine for MySQL - Google Project Hosting
http://code.google.com/p/php-sql-parser/ :: php-sql-parser - A pure PHP SQL (non validating) parser w/ focus on MySQL dialect of SQL - Google Project Hosting

Drizzle http://www.drizzle.org/ » Drizzle | A database for the cloud http://nosql.mypopescu.com/post/296876437/drizzle-replication-nosql-hybrid-solutions » Drizzle Replication: Opening the Doors to Hybrid Solutions • myNoSQL

TokuDB Engine: http://stackoverflow.com/questions/1746842/mysql-has-anyone-used-the-tokudb-storage-engine » database - MySQL: Has anyone used the TokuDB storage engine? - Stack Overflow http://nosql.mypopescu.com/post/296876437/drizzle-replication-nosql-hybrid-solutions » Drizzle Replication: Opening the Doors to Hybrid Solutions • myNoSQL


NoSQL

http://nosql-database.org/ » NOSQL Databases http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-actually-using-nosql-for.html :: High Scalability - High Scalability - What the heck are you actually using NoSQL for? http://highscalability.com/blog/2011/6/20/35-use-cases-for-choosing-your-next-nosql-database.html :: High Scalability - High Scalability - 35+ Use Cases for Choosing Your Next NoSQL Database http://nosql.mypopescu.com/kb/nosql » NoSQL • myNoSQL NoRAM DB => “If It Does Not Fit in RAM, I Will Quietly Die For You”

http://blogs.msdn.com/b/usisvde/archive/2012/04/05/getting-acquainted-with-nosql-on-windows-azure.aspx :: Getting Acquainted with NoSQL on Windows Azure - US ISV Evangelism - Site Home - MSDN Blogs http://www.thewindowsclub.com/difference-sql-nosql-comparision :: Difference between SQL and NoSQL : A Comparison http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/ :: NoSQL Data Modeling Techniques « Highly Scalable Blog

Relational modeling is typically driven by the structure of available data. The main design theme is ”What answers do I have?”. NoSQL data modeling is typically driven by application-specific access patterns, i.e. the types of queries to be supported. The main design theme is ”What questions do I have?”

A must watch: http://nosql.mypopescu.com/post/1016320617/mongodb-is-web-scale# » MongoDB is Web Scale • myNoSQL http://nosql.mypopescu.com/post/541365394do/about-the-nosql-hype-cycle » About the NoSQL Hype Cycle • myNoSQL

Con’s: Does not guarantee ACID: after the INSERT is completed in SELECT: a different value can be retrieved http://www.cubrid.org/blog/dev-platform/nosql-benchmarking/ :: NoSQL Benchmarking | CUBRID Blog

Redis and mongodb users might be somewhat surprised to learn that, by default, they can lose your
data should the process crash or shut down. While you can configure them to work around this issue,
you're going to slow things down substantially doing so and therefore lose the big advantage they've been designed to provide.

Searchability (I couldn't think of a better term) - Key-value stores are typically not designed to be easy to search.

http://java.dzone.com/articles/should-i-use-mongodb-couchdb :: Should I use MongoDB, CouchDB, or Redis? | Javalobby

Landscape: http://www.vineetgupta.com/2010/01/nosql-databases-part-1-landscape/ » NoSql Databases – Part 1 – Landscape » Vineet Gupta http://blog.knuthaugen.no/2010/03/the-nosql-landscape.html :: Analysis of the NoSQL Landscape - All About the Code http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis :: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison :: Software architect Kristof Kovacs http://stackoverflow.com/questions/4720508/redis-couchdb-or-cassandra :: nosql - Redis, CouchDB or Cassandra? - Stack Overflow

Best explanation of key/value store: http://redis.io/topics/twitter-clone » A case study: Design and implementation of a simple Twitter clone using only the Redis key-value store as database and PHP – Redis

This may appear strange at first, but remember that we are only able to access data by key!
It's not possible to tell Redis to return the key that holds a specific value. This is also our strength,
this new paradigm is forcing us to organize the data so that everything is accessible by primary key,
speaking with relational DBs language.
MapReduce Explained
http://ayende.com/blog/4435/map-reduce-a-visual-explanation » Map / Reduce – A visual explanation - Ayende @ Rahien
http://benbuckman.net/tech/12/06/understanding-mapreduce-mongodb-nodejs-php-and-drupal :: Understanding MapReduce in MongoDB, with Node.js, PHP (and Drupal) | Tech Blog by New Leaf Digital | Ben Buckman.net

Translate SQL to NoSQL MapReduce
http://nosql.mypopescu.com/post/392418792/translate-sql-to-mongodb-mapreduce » Translate SQL to MongoDB MapReduce • myNoSQL
http://rickosborne.org/download/SQL-to-MongoDB.pdf » rickosborne.org/download/SQL-to-MongoDB.pdf
http://rickosborne.org/blog/2010/02/playing-around-with-mongodb-and-mapreduce-functions/ » Playing around with MongoDB and MapReduce functions » rick osborne dot org

http://horicky.blogspot.com/2010/08/designing-algorithmis-for-map-reduce.html » Pragmatic Programming Techniques: Designing algorithms for Map Reduce

Technology details:
    http://www.slideshare.net/guestdfd1ec/design-patterns-for-distributed-nonrelational-databases » Design Patterns for Distributed Non-Relational Databases
    http://horicky.blogspot.com/2009/11/nosql-patterns.html » Pragmatic Programming Techniques: NOSQL Patterns
    http://www.slideshare.net/dstainer/introduction-to-nosql-databases » Introduction to NoSQL Databases

CouchDB

CouchDB and MongoDB: http://rickosborne.org/blog/2010/02/sql-or-nosql/ :: SQL or NoSQL? » rick osborne dot org

Redis

Cons

  • Client-side sharding (consistent hashing or custom distribution strategies)
  • Data must fit in memory
  • Pipelining is great

http://www.ustream.tv/recorded/11435693 :: Intro to Redis, Recorded on 12/14/10 joyent on USTREAM. Technology

Explained:
https://groups.google.com/forum/?fromgroups#!topic/redis-db/q7EdSUejzaU :: Predis vs. phpRedis, pipelining, clustering and others - Google Groups

http://redis.io/topics/twitter-clone » A case study: Design and implementation of a simple Twitter clone using only the Redis key-value store as database and PHP – Redis
http://simonwillison.net/static/2010/redis-tutorial/ » Redis tutorial, April 2010 - by Simon Willison
http://try.redis-db.com/ » Try Redis

Who’s Online?
    http://www.lukemelia.com/blog/archives/2010/01/17/redis-in-practice-whos-online/ » Luke Melia » Redis in Practice: Who’s Online?

Autocomplete in NoSQL:
    http://patshaughnessy.net/2011/11/29/two-ways-of-using-redis-to-build-a-nosql-autocomplete-search-index » Two ways of using Redis to build a NoSQL autocomplete search index - Pat Shaughnessy
    https://github.com/seatgeek/soulmate/ » seatgeek/soulmate
    http://www.varunpant.com/posts/auto-complete-with-redis-python » Varun Pant

Full Text Search
    http://playnice.ly/blog/2010/05/05/a-fast-fuzzy-full-text-index-using-redis/ » A fast, fuzzy, full-text index using RedisPlayNice.ly | PlayNice.ly
    http://playnice.ly/blog/2010/05/24/redis-multi-field-searching-and-filtering/ » Redis multi-field searching and filteringPlayNice.ly | PlayNice.ly
    http://nosql.mypopescu.com/post/683472484/redis-and-a-full-text-indexing-solution » Redis and a Full Text Indexing Solution • myNoSQL

Pub/Sub
    http://stackoverflow.com/questions/6192177/redis-pub-sub-with-reliability :: Redis Pub/Sub with Reliability - Stack Overflow


MongoDB & Redis
http://masonoise.wordpress.com/2010/01/30/comparing-mongodb-and-redis-part-1/ :: Comparing MongoDB and Redis, Part 1 | While I Pondered…
http://masonoise.wordpress.com/2010/02/02/comparing-mongodb-and-redis-part-2/ :: Comparing MongoDB and Redis, Part 2 | While I Pondered…

[Prebuilt Redis Windows binaries](https://github.com/dmajkic/redis)

Hbase/Hadoop

http://nosql.mypopescu.com/post/15561851616/hadoop-distributed-file-system-hdfs-a-cartoon-is-worth » Hadoop Distributed File System HDFS: A Cartoon Is Worth A • myNoSQL

MongoDB

MongoDB is the leading alternative.
http://www.mongodb.org/display/DOCS/Production+Deployments :: Production Deployments - MongoDB

Great Interactive Small Tutorial + The Little MongoDB Book
http://mongly.com/ » The MongoDB Collection

Geospatial Indexing
    Foursquare was using MongoDB.
    http://architects.dzone.com/articles/challenges-mongodb-geospatial :: Challenges of MongoDB, Geospatial Indexing, and Advanced Queries | Architects Zone
    http://ralphbarbagallo.com/2011/04/02/an-overview-of-geospatial-databases/ :: An Overview of Geospatial Databases « Ralph Barbagallo's Self Indulgent Blog
    http://labs.laulima.com/how-to-import-7-million-locations-from-geonames-to-mysql-then-into-mongodb-so-they-be-compared-and-optimized-for-location-queries/ :: Lau-Labs | Blog | How To: Import 7 Million Locations from GeoNames to MySQL, then into MongoDB so they can be compared and optimized for Location Queries

Scalability
    http://stackoverflow.com/questions/5667820/setting-up-mongodb-for-sharding-scalability » nosql - setting up mongodb for sharding/scalability? - Stack Overflow
    Most important feature of Mongo is that you don't have to modify application code to switch to sharded setup.

MongoDB is FAST
http://milancermak.posterous.com/benchmarking-tornados-sessions-0 » Benchmarking Tornado's sessions - A digital Moleskine
http://tumblr.devdazed.com/post/2737860983/mongo-vs-redis-the-increment-battle » Mongo Vs Redis, the Increment Battle - DevDazed

Redis is roughly faster than MongoDB: 2x write, 3x read.
http://stackoverflow.com/questions/5252577/how-much-faster-is-redis-than-mongodb » benchmarking - How much faster is Redis than mongoDB? - Stack Overflow

Problems:
    - Global lock and huge memory requirements
    - MongoDB should be used as a medium or small-sized storage system
    - Missing Records? 2010. Solved.
      http://www.blue74.com/2010/06/scatter/were-back-so-long-mongodb/ :: We’re Back… so long MongoDB! | Blue74
    - Optimize indexes
      http://serverfault.com/questions/335263/outgrew-mongodb-now-what :: Outgrew MongoDB … now what? - Server Fault
      http://www.10gen.com/presentations/mongosf2011/schemascale :: 10gen - MongoDB Presentations - Schema Design at Scale


PHP + MongoDB
http://blog.mongodb.org/post/24960636131/mongodb-for-the-php-mind-part-1 :: The MongoDB NoSQL Database Blog, MongoDB for the PHP Mind, Part 1
http://blog.mongodb.org/post/26903435041/mongodb-for-the-php-mind-part-2 :: The MongoDB NoSQL Database Blog, MongoDB for the PHP Mind, Part 2
http://prajwal-tuladhar.net.np/2009/11/15/496/mapreduce-api-for-mongodb/ :: Prajwal Tuladhar’s Blog » MapReduce API for MongoDB


Why?
http://www.mongodb.org/display/DOCS/Use+Cases :: Use Cases - MongoDB

MongoDB keeps as much in memory as possible while still keeping it usable. I make this point
because Redis provides the speed of memory but without the tools you would find in an SQL database.

Advanced Architecture Examples http://highscalability.com/blog/2011/11/29/datasift-architecture-realtime-datamining-at-120000-tweets-p.html » High Scalability - High Scalability - DataSift Architecture: Realtime Datamining at 120,000 Tweets Per Second

http://porcelli.com.br/archiv/nosql-for-beginners/ :: nosql for beginners | porcelli’s adventures in wonderland

Scaling

http://highscalability.com/blog/2011/9/13/must-see-5-steps-to-scaling-mongodb-or-any-db-in-8-minutes.html :: High Scalability - High Scalability - Must see: 5 Steps to Scaling MongoDB (Or Any DB) in 8 Minutes

date 17. Mar 2013 | modified 10. Jun 2024
filename: SQL » NoSQL Compared