mongodb

18
GROUP 1 | CMPE 281 | SJSU

Upload: christoph-hechenblaikner

Post on 18-Dec-2014

118 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: MongoDB

GROUP 1 | CMPE 281 | SJSU

Page 2: MongoDB

WHAT IS MONGODB?

● HYBRID, INDEXABLE, DOCUMENT-ORIENTED

● REPLICATION, AUTO-SHARDING, MAP/REDUCE

● PARTIALLY STRUCTURED, NOT ENFORCED

● QUERY DATA, NO UNIQUE IDENTIFIER

● USES BINARY PROTOCOL

Sai

Page 3: MongoDB

DESIGN FEATURES

● MAXIMUM AVAILABILITY

● EVENTUAL CONSISTENCY

● STAND-ALONE (SINGLE INSTANCE) VS. “SHARDED”

● MASTER-SLAVE APPROACH

● CONFIG SERVERS (MANAGERS)

● PROXIES (GATEWAY TO DATA)

Sai

Page 4: MongoDB

STRUCTURE

• MONGOD: STORES DATA, BASIC PROCESS (STANDALONE, SHARDED)

• CONFIG-MONGOD: STORES LOCATION AND SIZE OF SHARDS

• MONGOS: PROXY ACCESSED BY USER (STATELESS)

Christoph

Page 5: MongoDB

STRUCTURE

Christoph

Page 6: MongoDB

WRITE CONCERNS

• 13 MODES

• NORMAL: RETURN AFTER FORWARDED

• SAFE: RETURN AFTER ONE STORED (RAM)

• FSYNC_SAFE: RETURN AFTER ONE STORED (PERSISTENT STORAGE)

• NONE: RETURN IMMEDIATELY

• (IGNORE_ERROR, REPLICA_ACKNOWLEDGED, …)

Christoph

Page 7: MongoDB

CONSISTENCY

• CONFIG SERVERS

o TWO-PHASE COMMIT

o SYNCHRONOUS REPLICATION

o READ-ONLY MODE IN EVENT OF FAILURE

• SHARDS

o REPLICATED NODES

o SELF AUTO LOAD BALANCING

Chi

Page 8: MongoDB

SCALING

● ADDING SHARDING SERVERS

● ADDING CONFIG SERVERS

● ADDING PROXIES

● TUNING CONSISTENCY

Chi

Page 9: MongoDB

TRADE OFFS

• AVAILABILITY AT THE PRICE OF CONSISTENCY

• MULTIPLE NODES WITH EVENTUAL CONSISTENCY

• PRE-ALLOCATION VS. FILE SYSTEM FRAGMENTATION

Chi

Page 10: MongoDB

TRADE OFFS

Sai

Page 11: MongoDB

DEMO

Page 12: MongoDB

starting the service

starting the prompt

Page 13: MongoDB

getting info

about current

database

showing other

available

databases

switching to

database

(created if not

existent)

Page 14: MongoDB

defining

documents

inserting

documents

Page 15: MongoDB

performing

query without

criteria

performing query with simple criteria

using $in command

Page 16: MongoDB

performing query with nested command using $in and

$or

updating entry matching specific criteria (adding field

“age”)

Page 17: MongoDB

removing entry matching criteria from database

Page 18: MongoDB