Mongo chicago

47

Click here to load reader

Transcript of Mongo chicago

Page 1: Mongo chicago

Our Adventure WithMongoDB, Rails & Friends

Mongo ChicagoOctober 2010

Page 2: Mongo chicago

Ethan Gundersonhttp://ethangunderson.com

Twitter & Github: ethangunderson

Page 3: Mongo chicago

http://gathers.us

Page 4: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo3) Choosing an ODM4) Data modeling5) Takeaways6) Q & A

Page 5: Mongo chicago

Manage events

Page 6: Mongo chicago

Manage your groups(coming soon)

Page 7: Mongo chicago

Aggregate your social content(coming soon)

Page 8: Mongo chicago

High ValueGroupsEventsRSVPs

Low ValueSocial Events

Data needs

Page 9: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo3) Choosing an ODM4) Data modeling5) Takeaways6) Q & A

Page 10: Mongo chicago

Document data model

Page 11: Mongo chicago

Read heavy

Reads

Writes

Scaling With MongoDB - 2:45

Page 12: Mongo chicago

The real reasonI won an argument

Page 13: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo?3) Choosing an ODM4) Data modeling5) Takeaways6) Q & A

Page 14: Mongo chicago

Rails loves

Page 15: Mongo chicago

MongoMapperMogoDoc

MongoidMongomatic

Candy

Lotʼs of options for Rails integration

Page 16: Mongo chicago

The strait Mongo Ruby driver!We chose ...

Page 17: Mongo chicago
Page 18: Mongo chicago

ORMs are worthless if you donʼt understand what theyʼre doing.

Page 19: Mongo chicago

Simple to use

Page 20: Mongo chicago

Learn your tools

Page 21: Mongo chicago

We avoided one until it became too painful not to use one.

Page 22: Mongo chicago

In the end, we choseMongoid

Page 23: Mongo chicago

Rails 3 support

Page 24: Mongo chicago

Nice query syntax

Page 25: Mongo chicago

Safe mode

Page 26: Mongo chicago

Master / Slave

Page 27: Mongo chicago

Rapid development

Page 28: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo3) Choosing an ODM4) Data modeling5) Takeaways6) Q & A

Page 29: Mongo chicago

Our data model

Page 30: Mongo chicago

Introducing groups

Page 31: Mongo chicago

Option 1

Page 32: Mongo chicago

Option 2

Page 33: Mongo chicago

YEAH!!

Page 34: Mongo chicago

This idea actually sucks

Page 35: Mongo chicago

Mongoʼs 4MB 8MB document limit

Among other things, it keeps people like us, from doing things like that.

Page 36: Mongo chicago

In reality, documents shouldnʼt be bigger than ~250kb

1) updating on the server2) transferring across the network3) serializing to and from BSON

Inefficient when...

Page 37: Mongo chicago

Querying for single eventsCan’t pull back a single event

Page 38: Mongo chicago

Option 3single collection inheritance

Page 39: Mongo chicago

Mongoid Support

Page 40: Mongo chicago

Mongoid Support

Page 41: Mongo chicago

Easy querying

Page 42: Mongo chicago

Top level objects are stilltop level objects

Page 43: Mongo chicago

Moral of the story is,data modeling is still hard

Page 44: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo3) Choosing an ODM4) Data modeling5) Takeaways6) Q & A

Page 45: Mongo chicago

Takeaways1) Analyze your data needs2) Learn the API3) Data modeling is (still) hard

Page 46: Mongo chicago

Our Agenda1) gathers.us2) Why Mongo3) Choosing an ODM(?)4) Data modeling5) Takeaways6) Q & A

Page 47: Mongo chicago

http://spkr8.com/t/4864Q & A