Now that you've chosen MongoDB, how should you migrate your deployment? In this webinar, we'll discuss the different ways companies migrate to MongoDB including hybrid solutions, where only new or certain features are migrated, and all-in migrations, where everything is migrated. We'll use real customer examples to discuss the pros and cons of each so you can decide what strategy will work best for your deployment.
2. 2
Agenda
• Why move your data
• Considerations for migration
• Techniques for implementing migration
• Case study: How Shutterfly migrated 20TB of
production meta data with no downtime
3. 3
Why move your data?
• Improve development agility with documents
• Reduce cost of data management
• Scale to handle large data sets & transaction
volumes
15. 15
Case Study
Uses MongoDB to safeguard over 6 billion images
served to millions of customers
Problem Why MongoDB Results
• 6B images, 20TB of
data
• Brittle code base on top
of Oracle database –
hard to scale, add
features
• High SW and HW costs
• JSON-based data
model
• Agile, high
performance, scalable
• Alignment with
Shutterfly’s services-
based architecture
• 80% cost reduction
• 900% performance
improvement
• Faster time-to-market
• Dev. cycles in weeks
vs. tens of months
16. 16
• Meta data stored in XML Blobs
• App responsible for content of blob
Shutterfly
Oracle
Photo ID XML Blob
1 <xml><meta-data>…</xml>
2 <xml><meta-data>…</xml>
3 <xml><meta-data>…</xml>
17. 17
1. Request for photo
2. Try to read from
MongoDB
3. If cache miss, read
from Oracle
4. Translate document &
write to MongoDB
5. Return to client
Migrating records on demand
Source Database
Application
1
2
3
4
5
Here we have greatly reduced the relational data model for this application to two tables. In reality no database has two tables. It is much more common to have hundreds or thousands of tables. And as a developer where do you begin when you have a complex data model?? If you’re building an app you’re really thinking about just a hand full of common things, like products, and these can be represented in a document much more easily that a complex relational model where the data is broken up in a way that doesn’t really reflect the way you think about the data or write an application.