MongoDB
-
Upload
christoph-hechenblaikner -
Category
Technology
-
view
118 -
download
3
description
Transcript of MongoDB
GROUP 1 | CMPE 281 | SJSU
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
DESIGN FEATURES
● MAXIMUM AVAILABILITY
● EVENTUAL CONSISTENCY
● STAND-ALONE (SINGLE INSTANCE) VS. “SHARDED”
● MASTER-SLAVE APPROACH
● CONFIG SERVERS (MANAGERS)
● PROXIES (GATEWAY TO DATA)
Sai
STRUCTURE
• MONGOD: STORES DATA, BASIC PROCESS (STANDALONE, SHARDED)
• CONFIG-MONGOD: STORES LOCATION AND SIZE OF SHARDS
• MONGOS: PROXY ACCESSED BY USER (STATELESS)
Christoph
STRUCTURE
Christoph
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
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
SCALING
● ADDING SHARDING SERVERS
● ADDING CONFIG SERVERS
● ADDING PROXIES
● TUNING CONSISTENCY
Chi
TRADE OFFS
• AVAILABILITY AT THE PRICE OF CONSISTENCY
• MULTIPLE NODES WITH EVENTUAL CONSISTENCY
• PRE-ALLOCATION VS. FILE SYSTEM FRAGMENTATION
Chi
TRADE OFFS
Sai
DEMO
starting the service
starting the prompt
getting info
about current
database
showing other
available
databases
switching to
database
(created if not
existent)
defining
documents
inserting
documents
performing
query without
criteria
performing query with simple criteria
using $in command
performing query with nested command using $in and
$or
updating entry matching specific criteria (adding field
“age”)
removing entry matching criteria from database