Вы находитесь на странице: 1из 21

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


memcached
Scalability & Performance

key-value stores mongoDB

RDBMS

Depth of Functionality
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


Callbacks
before_create
before_destroy
before_save
before_update
before_validation
after_create
after_destroy
after_save
after_update
after_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


Links

• http://www.mongodb.org/
• http://www.mongoid.org
• http://highscalability.com/drop-acid-and-
think-about-data
• http://www.thenetworkadministrator.com/
MongoDB_MySQL.htm

Friday, July 23, 2010