Introduction to Mongodb
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introduction to Mongodb

on

  • 3,573 views

Introduction to MongoDB

Introduction to MongoDB

Statistics

Views

Total Views
3,573
Views on SlideShare
882
Embed Views
2,691

Actions

Likes
2
Downloads
31
Comments
0

3 Embeds 2,691

http://devveri.com 2679
https://twitter.com 11
http://www.google.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introduction to Mongodb Presentation Transcript

  • 1. MongoDBIntroduction to MongoDB
  • 2. Harun YardımcıSoftware Architect @ eBay@nosqlcozumler
  • 3. What is MongoDB?MongoDB is a scalable, high-performance, open-source,schema-free, document-oriented database developed by10gen.- MongoDB is named from "huMONGOus," meaning "extremely large".
  • 4. Features•  Dynamic schemas•  Full, flexible index support and rich queries•  Sharding for horizontal scalability•  Replication for high availability•  Text search•  Advanced security•  Aggregation Framework and Map-Reduce•  GridFS•  Geospatial
  • 5. TerminologyRDBMS MongoDBTable CollectionRow DocumentIndex IndexJoin Embedded DocumentForeign Key ReferencePartition ShardDatabase Database
  • 6. NoSQL Databases
  • 7. Document Database•  What is a document?o  PDF, Word document, text file?Document is an associated array
  • 8. Deployment Architecture•  Standalone•  Replica Set•  Sharded ClusterStandalone < Replica Set < Sharded Cluster** Typical sharded cluster consist of replica sets in production.
  • 9. CAP TheoremAvailabilityConsistencyPartitionToleranceN/ACAAPCPOracleMySQLPostgresMongoDBBigTableHBaseRedisMemcacheCouchDBCassandraRiakDynamoSimpleDB
  • 10. Standalone$ mongod--dbpath /data/db--fork--logappend--logpath /var/log/mongod.log--journal--port 27017
  • 11. Configuration Filevim /etc/mongod.confdbpath = /data/dbfork = truelogappend = truelogpath = /var/log/mongodb.logjournal = trueport = 27017$ mongod --config /etc/mongod.conf
  • 12. ReplicationRedundancy, Backup, and Automatic Failover•  Master / Slave (Deprecated since 1.6)•  Replica Set
  • 13. Replica Set$ mongod--dbpath /data/db--fork--logappend--logpath /var/log/mongod.log--journal--port 27017--replSet set01
  • 14. Replica Set InitializationStartup mongod process and connect to one of them> var cnf = { _id : set01, members : [{ _id : 0, host: myhost1.net:27017 },{ _id : 1, host: myhost2.net:27017 },{ _id : 2, host: myhost3.net:27017 }]}> rs.initiate(cnf)
  • 15. Replica Set•  Majority•  Voting•  Arbiters•  Hidden Members•  Delayed Members
  • 16. Application Concerns•  Write Concerno  Errors Ignoredo  Unacknowledgeo  Acknowledged (default)o  Journaledo  Replica Acknowledged•  Read Preferenceso  primaryo  primaryPreferredo  secondaryo  secondaryPreferredo  nearest
  • 17. Sharding•  Why?•  Scale-out•  Store different part of data on different hosts•  Auto Balancing
  • 18. Sharding Components•  Shardso  Standaloneo  Replica Set•  Config Servers•  Mongos
  • 19. Replica Set as a ShardAdd each replica set as a shard> sh.addShard( "set01/myhost1.net:27017, myhost2.net:27017,myhost3.net:27017" )To add standalone server as a shard.. DON’T DO IT!!> sh.addShard( "myhost9.net:27017" )
  • 20. Selecting Shard Key•  Distribution of Data•  Hashed Shard Key•  Chunks and Balancing
  • 21. Enable ShardingYou must enable sharding on each database separately> sh.enableSharding("mydatabase")And for each collection> sh.shardCollection( "mydatabase.mycol", { "userId" : 1 } )
  • 22. ThanksIf you have any questions, please feel free to ask