Upload
alvin-john-richards
View
99
Download
4
Embed Size (px)
DESCRIPTION
The presentation gives an update on what's new in MongoDB 3.0, including document level locking, new storage engines and much more!
Citation preview
Let the Tiger Roar! MongoDB 3.0
Alvin Richards Senior Director, Engineering [email protected] @jonnyeight
Agenda
MongoDB 3.0 Pluggable Storage Engine API Storage Engines
MMAPv1 WiredTiger WT vs MMAPv1
Improvements
MongoDB 3.0
h"p://www.pixelresort.com/wp-content/uploads/2013/06/3point0.jpg
3.0 is like your "classic " vinyl
MongoDB 3.0
Pluggable Storage Engine API Storage Engines Large Replica Sets Big Polygon Security Enhancements SCRAM-SHA-1 Query Introspection Audit & Logging Simplified Operations Ops Manager Tools Rewrite
MongoDB 3.0 is a bag full of goodies!
Storage Engine
h"p://[email protected]/wp-content/uploads/2012/08/PowerHaul-Engine-Green_844x680.jpg
How does MongoDB persist data?
Pluggable Storage Engine API
h"p://www.livingincebuforums.com/ipb/uploads/monthly_10_2011/post-198-0-67871200-1318223706.jpg
Storage Engine API
Allows to "plug-in" different storage engines Different workloads require different performance
characteristics mmapv1 is not ideal for all workloads More flexibility
Can mix storage engines on same replica set/sharded cluster
And more in the future J
MMAPv1
h"ps://angrytechnician.files.wordpress.com/2009/05/memory.jpg
MMAPv1
MMAPv1
Improved concurrency control Database Locking -> Collection Level Work now parallelized between collections
Data & Indexes memory mapped into virtual address space
Data access is paged into RAM
OS evicts using LRU
More frequently used pages stay in RAM
WiredTiger
What is WiredTiger?
Storage engine company founded by BerkeleyDB alums Recently acquired by MongoDB Available as a storage engine option in MongoDB 3.0
Why is WiredTiger Awesome
Document-level concurrency Disk Compression
Index Prefix compression Consistency without journaling Better performance on certain workloads
write heavy
Improving Concurrency
2.2 Global Lock 2.4 Database-level Locking 3.0 MMAPv1 Collection-level Locking 3.0 WT Document-level
Writes no longer block all other writes Higher level of concurrency leads to more
throughput & lower latency
Compression
WT uses snappy compression by default Data is compressed on disk 2 supported compression algorithms
snappy: default. Good compression, relatively low overhead
zlib: Better Indexes are compressed using prefix
compression Allows compression in memory
Consistency without Journaling
MMAPv1 uses write-ahead log (journal) to guarantee consistency
WT doesn't have this need: no in-place updates Write-ahead log committed at checkpoints
2GB or 60sec by default configurable! No journal commit interval: writes are written to
journal as they come in Better for insert-heavy workloads
Replication guarantees the durability
MMAPv1 vs. WT
How to run MMAPv1
MMAPv1 is the default
How to run WT
mongod now has --storageEngine option
MMAPv1 Database Files
MMAPv1 persists data to files per databases Indexes Data
WT Database Files
Each collection & indexes stored in own file
Playing nice together
Can not Can't copy database files Can't just restart w/ same dbpath
Yes we can! Initial sync from replica set works perfectly! mongodump/restore
Rolling upgrade of replica set to WT: Shutdown secondary Delete dbpath Relaunch w/ --storageEngine=wiredTiger Rollover
Other WT configuration options
Compression: --wiredTigerCollectionBlockCompressor
YAML format for configuration
Gotcha's!!!
No 32-bit Support WT is 64bit only
system.indexes & system.namespaces deprecated Explicit commands: db.getIndexes() db.getCollectionNames()
h"ps://@ngbudongchine.files.wordpress.com/2012/08/lemonde1.jpeg
Small Demo
Improvements
Benefits
Wider Range of Use Cases
How: Flexible Storage Architecture Fundamental rearchitecture, with new pluggable storage engine API Same data model, same query language, same ops But under the hood, many storage engines optimized for many use
cases
Single View Content Management
Real-Time Analytics Catalog
Internet of Things (IoT) Messaging
Log Data Tick Data
Up to 95% Lower Operational Overhead
How: MongoDB Ops Manager The best way to run MongoDB Automates core management
tasks Single-click provisioning, scaling,
upgrades, administration Monitoring, with charts,
dashboards & alerts on 100+ metrics
Backup and restore, with point-in-time recovery
7x-10x Performance, 50%-80% Less Storage
How: WiredTiger Storage Engine Same data model, same query
language, same ops Write performance gains driven
by document-level concurrency control
Storage savings driven by native compression
100% backwards compatible Non-disruptive upgrade
MongoDB 3.0 MongoDB 2.6
Performance
h"p://www.humanandnatural.com/data/media/178/badan_jaran_desert_oasis_china.jpg
Please go and use it!
3.0.0 https://www.mongodb.org/downloads https://jira.mongodb.org/secure/Dashboard.jspa
h"p://[email protected]/blog/wp-content/uploads/2015/01/hammer.jpg
h"p://www.humanandnatural.com/data/media/178/badan_jaran_desert_oasis_china.jpg
Questions?
@jonnyeight [email protected]
h"p://www.mandywalker.com.au/wp-content/uploads/2013/07/Wall-with-Tools.jpg
We are hiring!
http://www.mongodb.com/careers