what'snnew in 3.0 webinar

27
What’s New in MongoDB 3.0 Osmar Olivo Product Manager

Upload: mongodb

Post on 15-Jul-2015

5.169 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: What'sNnew in 3.0 Webinar

What’s New in MongoDB 3.0

Osmar Olivo

Product Manager

Page 2: What'sNnew in 3.0 Webinar

Agenda

• Pluggable Storage Engines

• WiredTiger Integration

• Document- Level Locking

• Compression

• WT Internals

• Upgrade/Installation

• Options

Page 3: What'sNnew in 3.0 Webinar

Pluggable Storage Engines

Page 4: What'sNnew in 3.0 Webinar

Storage Engine Layer

● Vision: Many storage engines optimized for

many different use cases

● One data model, one API, one set of

operational concerns – but under the hood,

many options for every use case under the sun

Page 5: What'sNnew in 3.0 Webinar

Storage Engine Layer

Content

Repo

IoT Sensor

BackendAd Service

Customer

AnalyticsArchive

MongoDB Query Language (MQL) + Native Drivers

MongoDB Document Data Model

MMAP V1 WT In-Memory ? ?

Supported in MongoDB 3.0 Future Possible Storage Engines

Ma

na

ge

me

nt

Se

curity

Example Future State

Experimental

Page 6: What'sNnew in 3.0 Webinar

WiredTiger Integration

Page 7: What'sNnew in 3.0 Webinar

Why WT?

• WT addresses weaknesses of MMAPv1

– Compression

– Online Compaction

– Highly concurrent and vertically scalable

• Document level locking

• Allows full hardware utilization

• More tunable

– Higher ceiling for potential improvement

Page 8: What'sNnew in 3.0 Webinar

Why WT

• Strong Foundation

– Authors Former Members of Berkeley DB

team

• WT product and team acquired by

MongoDB

• Standalone Engine already in use in large

deployments including Amazon

Page 9: What'sNnew in 3.0 Webinar

Document Level Concurrency

Page 10: What'sNnew in 3.0 Webinar

Document Level Concurrency

• Improved Concurrency

– Uses algorithms to minimize contention

between threads• One thread yields on contention to same document

• Atomic update replaces latching/locking

– Writes no longer block all other writes

– CPU utilization directly correlates with

performance

Page 11: What'sNnew in 3.0 Webinar

Compression

Page 12: What'sNnew in 3.0 Webinar

Compression

• Compression is on in WT by default

• 2.8 supports two compression algorithms

– snappy ( default)

• Good compression benefits with little

CPU/performance impact

– zlib

• Extremely good compression at a cost of

additional CPU/degraded performance

Page 13: What'sNnew in 3.0 Webinar

WT Internals

Page 14: What'sNnew in 3.0 Webinar

WT Internals

• File format

– Data Stored as conventional B+ tree on disk

– Inserts into one big file per collection

– In memory, on disk format is decoupled

• Variable-length pages on disk

• Inserts into in-memory skiplists

Page 15: What'sNnew in 3.0 Webinar

WT Internals

• File Layout

– Each collection & index stored in own file

• Can only use one

– Will fail to start if MMAPv1 files found in

dbpath

– No in-place updates

• Rewrites document to end of file every

time

• No padding factor

Page 16: What'sNnew in 3.0 Webinar

WT Internals

• File Layout

– Does not extend concept of DB to disk layout

• Concept of DB purely logical

– Journal has own folder under dbpath

– Allows for storing indexes on separate

volumes easily

Page 17: What'sNnew in 3.0 Webinar

WT Internals

• Deprecate MMAPv1-specific catalog metadata

– system.indexes & system.namespaces

– System metadata should be accessed via

explicit commands going forward

Page 18: What'sNnew in 3.0 Webinar

WT Internals

• Cache

– WT uses two caches

• The WiredTiger engine cache

• The file system cache

• WT cache uses higher value of 50% of

system memory or 1GB (by default)

Page 19: What'sNnew in 3.0 Webinar

WT Internals

• When is data written to disk?

– Checkpoints

• By default, performed every 60 seconds or

after 2GB are written

• Analogous to MMAPv1 data file flushes

– When the WT cache is full pages will be

written to disk

Page 20: What'sNnew in 3.0 Webinar

WT Internals

• Durability

– WT uses a write ahead transaction log

• Cannot set journalCommitInterval

• Can use j:true write concern

• Can use --journal or –nojournal

• Old journal files truncated after each checkpoint

– Data files are always consistent, no longer have

need for journal recovery after unclean shutdown

• Will only lose data since last checkpoint (< 60 s.)

Page 21: What'sNnew in 3.0 Webinar

WT Internals

• Supported Platforms

– Linux

– Windows

– Mac OSX

• Not Supported Platforms

– NO Solaris (yet)

– NO 32Bit (ever)

Page 22: What'sNnew in 3.0 Webinar

How Do I Install/Upgrade It?

• Installation

– Starting from scratch add 1 additional flag

when launching mongod

• --storageEngine=wiredTiger

Page 23: What'sNnew in 3.0 Webinar

How Do I Install/Upgrade It?

• Upgrade Procedure

– 2 ways

– Mongodump/Mongorestore

– Initial sync a new replica member running

WT

• We support running replicas with mixed

storage engines

– CANNOT copy raw data files

• WT will fail to start if wrong data format in

dbpath

Page 24: What'sNnew in 3.0 Webinar

What Options Are Relevant?

• Options that still apply

– journal

– nojournal

– repair

– repairPath

– upgrade

Page 25: What'sNnew in 3.0 Webinar

What Options Are Relevant?

• MMAPV1 only options

– quota

– quotaFiles

– noprealloc

– nssize

– smallfiles

– syncdelay

– journalOptions

– journalCommitInterval

Page 26: What'sNnew in 3.0 Webinar

What Options Are Relevant?

• File Format specific options removed from

tools.

– --dbpath

Page 27: What'sNnew in 3.0 Webinar

Questions?