Top Banner
Mongo Introduction [email protected]
29

Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

May 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo [email protected]

Page 2: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

1. Mongo As A ProductA Distribute , Document NoSQL Database

Page 3: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo User Case

Document

Collection

Page 4: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo User Case

Page 5: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo User Case

Mongo Read Operation

MySQL Read Operation

Page 6: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo User Case

Connect

Use DB

Get Table

Insert 3 Docs

Delete 1 Doc

Delete 2 Doc

Page 8: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

2. Mongo Architecture

Page 9: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo Architecture

Page 10: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo Architecture

Page 11: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Data Partitioning -- Range Based Sharding

Page 12: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Data Partitioning -- Hash Based Sharding

Page 13: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Shard - Splitting

Page 14: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Shard - Splitting

Page 15: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Storage Engine

Page 16: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Storage Engine

Page 17: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

3. Mongo Data Safety

Page 18: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Before 2.0 (Default Journal=OFF) 2.0+ (Default Journal=ON)

Data Lost

Page 19: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Write Concern

{w: 0} Unacknowledged {w: 1} Acknowledged

2.4 + Before 2.4

Data Lost

Page 20: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

{j:1} Journaled ( Batch Sync)

Standalone Data SafeBut Replica Set is not safe

Page 21: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

01:00:00 A -> B Network broken01:00:01 Application write an record x to A.01:00:02 A -> reject write. A-> Slave01:00:05 B -> Leader 01:00:08 Network recovered, A re-join replicat set. A will remove the oplog of x. 01:00:08 Application will find x does not exist any more.

Data inconsistent

Page 22: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

{w: “majority”}

Page 23: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

4. Mongo VS HBase

Page 24: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Data Model Data Type Query Model Write Perf Hadoop Ecosytem LBS

MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported

HBase Wide Column byte[] Scan + Filter Very Faster Apache Top Project GeoHash

Score ? ? M > H H > M H > M M > H

Mongo VS HBase

MongDB And HBase Compared

Page 25: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Spark MapReduce GC Throughput Consistence …..

MongoDB - - - - Strong OR Eventual …..

HBase - - - - Strong consistent …..

Score H+ H+ M+ H+ ? …..

Mongo VS HBase

MongDB And HBase Compared

Page 26: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

4. Mongo Case

Page 27: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo Case

Page 28: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo Case

Page 29: Mongo Introductionopeninx.github.io/ppt/mongo.pdf · MongoDB Document int/string etc.. JSON Query Medium Non Apache Project Native supported HBase Wide Column byte[] Scan + Filter

Mongo Case