My first moments with MongoDB

20

Click here to load reader

Transcript of My first moments with MongoDB

Page 1: My first moments with MongoDB

My First Moments with MongoDB

Colin Charles [email protected] | @bytebot | http://bytebot.net/blog/

Community Open House, New York City, New York, USA 30 June 2016

Page 2: My first moments with MongoDB

whoami• Work on MariaDB Server at MariaDB Corporation

(SkySQL Ab)

• Merged with Monty Program Ab, makers of MariaDB

• Formerly MySQL AB (exit: Sun Microsystems)

• Past lives include Fedora Project (FESCO), OpenOffice.org

• MySQL Community Contributor of the Year Award winner 2014

Page 3: My first moments with MongoDB

Agenda• What is MongoDB?

• Why MongoDB?

• Who uses MongoDB?

• Where is MongoDB found?

• Storage Engines

• Distributions

• Replication

• Backups

• Monitoring

• DBaaS

• Production

• Resources

Page 4: My first moments with MongoDB

Research Papers• 1970 E.F. Codd paper “A Relational Model of Data for Large

Shared Data Banks”

• 2004 Google paper “MapReduce: Simplified Data Processing on Large Clusters” -> Hadoop ~2008 “big data movement”

• 2006 Google paper “BigTable: A Distributed Storage System for Structured Data” -> Cassandra/HBase/LevelDB ~2009

• 2007 Amazon paper “Dynamo: Amazon’s Highly Available Key-value Store” -> Aerospike/Cassandra/Voldemort/Riak

• 2012 Google paper “Spanner: Google’s Globally-Distributed Database” -> CockroachDB

Page 5: My first moments with MongoDB

What is MongoDB?• Document oriented database

• data stored in documents, not tables/relations

• JSON

• JavaScript

• Flexible schema

• no downtime for field (column) changes or index creation

Page 6: My first moments with MongoDB

Why MongoDB?• “After three years it has become clear that in

terms of LinkedIn member profiles there is only one trend: the total dominance of MongoDB.” - Matt Aslett, 451 Group

• Agile development

• No additional caching layer required

• Built in replication with automatic failover + sharding out of the box

Page 7: My first moments with MongoDB

Who uses MongoDB?

• Craigslist

• Facebook’s Parse

• Business Insider

• Foursquare

• Stripe

Page 8: My first moments with MongoDB

Where is MongoDB found?• All manner of Linux distributions

• MongoDB repositories: http://repo.mongodb.org/

• Works on Little Endian only (SERVER-1625)

• Test databases (mongoimport)

• http://media.mongodb.org/zips.json

• https://docs.mongodb.com/getting-started/shell/import-data/ (primer-dataset.json restaurants)

• https://docs.mongodb.com/manual/reference/program/

Page 9: My first moments with MongoDB

Storage Engines

• MMAPv1 (B-Tree)

• WiredTiger (B-Tree, LSM)

• MongoRocks (LSM)

• (PerconaFT, formerly TokuMX/TokuKV)

• In-memory engine (Enterprise)

Page 10: My first moments with MongoDB

Distributions of MongoDB

• MongoDB

• MongoDB Enterprise

• Percona Server for MongoDB

• MongoRocks, audit logging, SASL authentication,

Page 11: My first moments with MongoDB

Replication

• Node: single mongod process

• Majority

• Replica set: group of nodes. HA via elections. All members are equal by default + replicate to each other asynchronously

• Oplog: capped collection, idempotent

Page 12: My first moments with MongoDB

Replication II

• Shard: replica sets are groups. Queries filtered for data chunk holds

• Config servers: metadata for sharded clusters

Page 13: My first moments with MongoDB

Backups

• mongodump / mongorestore

• filesystem snapshots (LVM)

• rocks-strata (MongoRocks); TokuBackup (PerconaFT)

• $: Ops Manager / Cloud Manager

Page 14: My first moments with MongoDB

Monitoring

• mongostat

• mongotop

• db.serverStatus(), etc.

• host of OSS tools

• $aa$: Cloud Manager, New Relic, DataDog

Page 15: My first moments with MongoDB

DBaaS

• mLab

• ObjectRocket

• Compose

• MongoDB Atlas

Page 16: My first moments with MongoDB

Production Notes

• Configure mongod.conf!

• Follow through and you’ll be off to a good start

• https://docs.mongodb.com/manual/administration/production-notes/

• https://docs.mongodb.com/manual/administration/production-checklist/

Page 17: My first moments with MongoDB

There’s more• Understanding aggregation framework

• Sizing and provisioning

• db.collection.stats(), .explain()

• GIS functionality

• Grants? There are roles in MongoDB!

• Percona Toolkit? mlogsummary, mongo-summary

Page 18: My first moments with MongoDB

Books

Page 19: My first moments with MongoDB

Resources• MongoDB University - https://

university.mongodb.com/

• Quick Reference Cards - https://www.mongodb.com/collateral/quick-reference-cards

• The Little MongoDB Book (2.6) - https://github.com/karlseguin/the-little-mongodb-book/blob/master/en/mongodb.markdown

Page 20: My first moments with MongoDB

Thank [email protected] | @bytebot | http://bytebot.net/blog/

slides: slideshare.net/bytebot