conceptos avanzados 1: motores de almacenamiento
TRANSCRIPT
![Page 1: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/1.jpg)
Code ruben20 gets you a
20% discount off the list
price.
8 November 2017
London, UK
Intercontinental at the 02
![Page 2: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/2.jpg)
Conceptos Avanzados : Parte 1
Motores de Almacenamiento
Rubén Terceño
Senior Solutions Architect, EMEA
@rubenTerceño
Alejandro Mancilla
Senior Solutions Architect, LATAM
@alxmancilla
![Page 3: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/3.jpg)
3
Concpetos Avanzados
• Continuación de Concptos Básicos: Una Introducción a NoSQL y MongoDB
• Cubrimos temas más avanzados:
– Mototres de Almacenamiento
• Cuántos existen y cuál esocger
– Aggregation Framework
• Como ejecutar analítica avanzada en la propia base de datos
– Conector de BI
• Cómo crear visualizaciones y reportes a partir de datos de MongoDB
– Seguridad
• Cómo volver inexpungnable nuestro despliegue de MongoDB
![Page 4: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/4.jpg)
4
Replica Set Refresher
SecondarySecondary
Primary
HeartbeatHeartbeat
Heartbeat
![Page 5: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/5.jpg)
5
Storage Engines
![Page 6: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/6.jpg)
6
Comparison
![Page 7: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/7.jpg)
7
Storage Engine API
• Arrived with MongoDB 3.0 (March 2015)
• Two storage engines initially supported
– Wired Tiger
– MMAPV1
• MongoDB 3.2 (Dec 2015)
– made Wired Tiger the default storage engine
– added the encrypted storage engine
• MongoDB 3.2.6 – In-memory storage engine
![Page 8: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/8.jpg)
8
MMAPV1
• Memory mapped, used MMAP to map pages to memory
• The original MongoDB storage engine
• Collection level locking
• Refactored MongoDB 2.6 code base
• Fast for reads, slow for writes.
• Ultra fast for updates.
• Can't utilize the memory and core footprint of modern server architectures
• Was still the default storage engine in 3.0
![Page 9: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/9.jpg)
9
Wired Tiger
• Created by founders of BerkeleyDB
• Designed for modern server architectures (high memory, high core count)
• Uses a "lock free" architecture to minimise locks that are held
• Use MVCC (multi-version concurrency control) to maximise the ability for
readers to access data consistently
• Designed to be a "database toolkit"
• Has internal support for row stores, column stores, LSM trees, transactions
(not all these are used by MongoDB)
• Is the basis of the encrypted and in-memory storage engines
![Page 10: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/10.jpg)
10
Wired Tiger Performance
![Page 11: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/11.jpg)
11
Wired Tiger Cache
• Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of
either:
– 50% of RAM minus 1 GB, or
– 256 MB
• Cache does not represent the total memory footprint of the server
• Keeping data in the cache really improves performance
![Page 12: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/12.jpg)
12
Wired Tiger Compression
Enron Email Corpus
http://mongodb-enron-email.s3-website-us-east-1.amazonaws.com/
About 0.5m messages
![Page 13: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/13.jpg)
13
Wired Tiger Write Performance
Report
https://www.mongodb.com/collateral/comparative-benchmarks-mongodb-vs-couchbase-vs-cassandra
![Page 14: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/14.jpg)
14
In Memory
• --storageEngine in-Memory
• Designed for low, consistent latency
• Dataset must fit in memory
• By default will allocate 50% of RAM minus 1GB
• Can configure with --inMemorySizeGB to reduce or increase
• Exceeded memory error:
"WT_CACHE_FULL: operation would overflow cache"
![Page 15: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/15.jpg)
15
In-Memory Performance
![Page 16: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/16.jpg)
16
Encrypted Storage Engine
• Built on the Wired Tiger Storage engine
• Supports KMIP - Key Management Interoperability Protocol
– https://en.wikipedia.org/wiki/Key_Management_Interoperability_Protocol
• Start server with --enableEncryption
• Essentially a variant on the WT storage engine as opposed to a storage engine in its own
right
• The KMIP key is used to generate internal keys to encrypt the data
![Page 17: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/17.jpg)
17
Example Mixed Deployment
SecondarySecondary
Primary
SecondarySecondary
Hidden Disk Replicas
Visible (Votable) in memory replicas
![Page 18: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/18.jpg)
18
When To Use
• Default is Wired Tiger : Use this and you’ll be right most of the times.
• In-Memory : For low latency read/write operations where long term durability
is less of an issue
– Cache is a typical use case
• Encrypted : If you data is sensitive or you need to certify your stack against
HIPAA, FIPS or SOC-2
• Can mix and match
• Easy to switch
• But – if you are building mixed mode cluster please talk to us
![Page 19: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/19.jpg)
19
Q&A
![Page 20: Conceptos Avanzados 1: Motores de Almacenamiento](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a66f69b7f8b9ae45c8b4897/html5/thumbnails/20.jpg)
Code ruben20 gets you a
20% discount off the list
price.
8 November 2017
London, UK
Intercontinental at the 02