MongoDB is the new MySQL

Post on 05-Dec-2014

985 views 0 download

description

Talk given before the July 22 Philippine Ruby Users Group meetup

Transcript of MongoDB is the new MySQL

MongoDB is the New MySQL

Friday, July 23, 2010

MongoDB is...

• a schema-less, document-oriented database

• open-source (server: GPL, drivers: Apache)

• built on C++

• supported commercially by 10gen

Friday, July 23, 2010

Why MongoDB?

• Fast

• Highly scalable: replication, sharding

• Open-source• runs on Windows

Friday, July 23, 2010

Trade-offs

Friday, July 23, 2010

ACID

• Atomicity - A transaction is all or nothing

• Consistency - Only valid data is written to the database

• Isolation - Pretend all transactions are happening serially and the data is correct

• Durability - What you write is what you get

Friday, July 23, 2010

BASE

• Basically Available - system seems to work all the time

• Soft state - it doesn’t have to be consistent all the time

• Eventually consistent - becomes consistent at some later time

Friday, July 23, 2010

Scal

abili

ty &

Per

form

ance

Depth of Functionality

memcached

key-value stores mongoDB

RDBMS

Friday, July 23, 2010

Programming

Friday, July 23, 2010

ActiveModel?

Friday, July 23, 2010

Persistence

Friday, July 23, 2010

Querying

Friday, July 23, 2010

Named Scopes!

Friday, July 23, 2010

Named Scopes!

Friday, July 23, 2010

Named Scopes!

Friday, July 23, 2010

Callbacksbefore_createbefore_destroybefore_savebefore_updatebefore_validationafter_createafter_destroyafter_saveafter_updateafter_validation

Friday, July 23, 2010

Validation

Friday, July 23, 2010

Administration

Friday, July 23, 2010

Replication

• M -> S

• M -> S*

• Replica sets [aka clusters] coming in v.1.6

Friday, July 23, 2010

Sharding

Friday, July 23, 2010

Questions?Radamanthus Batnag

rad@infinite.ly

Friday, July 23, 2010