+ All Categories
Home > Technology > MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Date post: 11-Nov-2014
Category:
Upload: mongodb
View: 328 times
Download: 2 times
Share this document with a friend
Description:
An overview of the principals of "sharding" within MongoDB
Popular Tags:
20
MongoDB and The Internet of Things Arthur Viegers Senior Solutions Architect, MongoDB MongoDB IoT City Tour 2014
Transcript
Page 1: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

MongoDB and The Internet of Things

Arthur ViegersSenior Solutions Architect, MongoDB

MongoDB IoT City Tour 2014

Page 2: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Scaling Data

Page 3: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Read/Write Throughput Exceeds I/O

Page 4: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Working Set Exceeds Physical Memory

Page 5: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Vertical Scalability (Scale Up)

Page 6: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Horizontal Scalability (Scale Out)

Page 7: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

MongoDB’s Approach

Page 8: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• User defines a shard key

• Shard key defines a range of data

• Key space is like points on a line

• Range is a segment of that line

Partitioning

Page 9: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• Initially 1 chunk

• Default max. chunk size: 64MB

• MongoDB automatically splits & migrates chunks when max reached

Data Distribution

Page 10: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• Queries routed to specific shards

• MongoDB balances cluster

• MongoDB migrates data to new nodes

Routing and Balancing

Page 11: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Architecture

Page 12: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• A shard is a node of the cluster

• A shard can be a single mongod or a replica set

What is a Shard?

Page 13: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Sharding Infrastructure

Page 14: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Shard Key Considerations

Page 15: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• Cardinality

• Write distribution

• Query isolation

• Reliability

• Index locality

Shard Key Considerations

Page 16: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Rexroth NEXO schema

{ _id: ObjectID("52ecf3d6bf1e623a52000001"), assetId: "NEXO 109", hour: ISODate("2014-07-03T22:00:00.000Z"), status: "Online", type: "Nutrunner", serialNo : "100-210-ABC", ip: "127.0.0.1", positions: { 0: { 0: { x: "10", y:"40", zone: "itc-1", accuracy: "20” }, …, 59: { x: "15", y: "30", zone: "itc-1", accuracy: "25” } }, …, 59: { 0: { x: "22", y: "27", zone: "itc-1", accuracy: "22” }, …, 59: { x: "18", y: "23", zone: "itc-1", accuracy: "24” } } }}

Page 17: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

Shard Key Selection Rexroth NEXO

Cardinality

Write Distributi

on

Query Isolation Reliability Index

Locality

_id Doc level One shard

Scatter/gather

All users affected Good

hash(_id) Hash level All Shards Scatter/

gatherAll users affected Poor

assetId Many docs All Shards Targeted

Some assets

affectedGood

assetId, hour Doc level All Shards Targeted

Some assets

affectedGood

Page 18: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Summary

Page 19: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

*

• MongoDB scales horizontally (sharding)

• Each shard is an independent database, and collectively, the shards make up a single logical database

• MMS makes it easy and reliable to run MongoDB at scale

• Sharding requires minimal effort from the application code: same interface as single mongod

Scaling Data

Page 20: MongoDB IoT City Tour EINDHOVEN: Sharding in MongoDB

Thank you!


Recommended