My first moments with MongoDB
Click here to load reader
-
Upload
colin-charles -
Category
Technology
-
view
199 -
download
0
Transcript of My first moments with MongoDB
![Page 1: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/1.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/2.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/3.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/4.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/5.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/6.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/7.jpg)
Who uses MongoDB?
• Craigslist
• Facebook’s Parse
• Business Insider
• Foursquare
• Stripe
![Page 8: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/8.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/9.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/10.jpg)
Distributions of MongoDB
• MongoDB
• MongoDB Enterprise
• Percona Server for MongoDB
• MongoRocks, audit logging, SASL authentication,
![Page 11: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/11.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/12.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/13.jpg)
Backups
• mongodump / mongorestore
• filesystem snapshots (LVM)
• rocks-strata (MongoRocks); TokuBackup (PerconaFT)
• $: Ops Manager / Cloud Manager
![Page 14: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/14.jpg)
Monitoring
• mongostat
• mongotop
• db.serverStatus(), etc.
• host of OSS tools
• $aa$: Cloud Manager, New Relic, DataDog
![Page 15: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/15.jpg)
DBaaS
• mLab
• ObjectRocket
• Compose
• MongoDB Atlas
![Page 16: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/16.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/17.jpg)
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](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/18.jpg)
Books
![Page 19: My first moments with MongoDB](https://reader037.fdocuments.us/reader037/viewer/2022100802/586fe8be1a28ab92198b48af/html5/thumbnails/19.jpg)
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