Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Is MongoDB Right For Your Project (or Organization)

1,702 views

Published on

Published in: Technology
  • Be the first to comment

Is MongoDB Right For Your Project (or Organization)

  1. 1. Is MongoDB Right for Your Project? (...or your organization)? Tony Bibbs
  2. 2. I’m Nobody Special. Seriously.• Routine Geek Stuff• Crappy code + 3NF databases• These days, less crappy code• Still using 3NF databases
  3. 3. About The GForge Group• Not-so-crappy code• Rigid, 3NF PostgreSQL DB• ORM helps some• If it won’t fit on paper....• ...it won’t fit in a slide -->
  4. 4. RDMS are like light beer You can party with it but ......
  5. 5. NoSQL Databases.... are more like liquor
  6. 6. Anatomy of LAMP Application• PHP Code• ORM• REST API (JSON)• APC• Memcache• MySQL
  7. 7. Crazy routine to try and make an RDBMS Scale...
  8. 8. Who can guess the exact name of the #1 processhogging CPU on PHP/PostgreSQL apps. PHP/MySQL apps?
  9. 9. My Path to NoSQL•I knew RDBMS was a problem•Likes of FB, Twitter, Guardian•Far better geeks than I using it•I wanted to iterate faster•“The Dream” of Web Scale
  10. 10. Basic Types of NoSQL Solutions• Key-Value (Memcache)• Column-Tab (Cassandra, HBase)• Graph Databases (Neo4j, VertexDB)• Document Databases (CouchDB, MongoDB)• (Never lose sight of RDBMS which are adding NoSQL features)
  11. 11. Secondary considerations...• Language Support• Query interface• How do they scale out?
  12. 12. What attracted me to MongoDB• Low ramp• Document oriented applications (most things web facing)• Trivial single server setup• Native PHP driver (Java/Scala, .NET and about 9 others)• Easy to make PHP use MongoDB as session store• Fluent Query API• Atomic operations despite not being ACID
  13. 13. What hooked me on MongoDB• Large file support with GridFS• MapReduce support when basic native query interface won’t do• Cloud Friendly• Native Geospatial Support (think location-based applications)• Single Master to sharded cluster with zero downtime• Fluid schemas and it’s all JSON (BSON, really)
  14. 14. MongoDB Ain’t All Roses• Record limit of 4MB in 1.6.x and 16MB in 1.8.x• Use 64-bit systems (or don’t even bother)• Lack of full text search• Not ACID• Writes can be problematic (which can be overcome)• Backup and Disaster Recovery
  15. 15. What I Considered Before MongoDB• Started with Cassandra (influenced by Twitter)• Gave HBase/Hadoop a try (influenced by T8 Webware)• Realized a) I have different needs and b) HBase people are smarter than I am
  16. 16. Walk Over, Limp Back• Take Physical DBA Approach• Know Internals of MongoDB• Know hardware (RAM)• Know schema design• OOID <> GUID
  17. 17. MongoDB Plans at The GForge Group• New feedback application• Possible heterogeneous use of PostgreSQL and MongoDB• GeoSpatial Mobile Applications• Internal CRM Application
  18. 18. Questions?
  19. 19. Tony Bibbs tony@gforgegroup.com http://gforgegroup.com@tonybibbs and @gforgegroup
  20. 20. Credits• Steve Francia at 10gen• Light Beer - http://www.flickr.com/photos/iandavid• Bar - http://www.flickr.com/photos/mediafury• Ving Rhames - http://www.flickr.com/photos/16180154@N07

×