SlideShare a Scribd company logo
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
1 
MongoDB & MongoMK 
Mark Puddick (MongoDB) and Yuval Ararat (Adobe)
Agenda 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
2 
MongoDB? 
• Enterprise on my mind 
• Moving In! 
• Practice of the Best!
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
3
What is 
MongoDB? 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
4 
Document Orientated Database 
• Open source 
• High performance 
• Horizontally scalable 
• Full featured
Document Model 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
5 
JSON 
• Binary = BSON 
• Index-able
Clustering 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
6 
Replica Set 
• Sharding
Replica Set 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
7 
Replica Set – two or more copies 
• Self-healing shard 
• Addresses availability considerations 
• High Availability 
• Disaster Recovery 
• Maintenance 
• Deployment Flexibility 
• Data locality to users 
• Workload isolation: operational & analytics
Sharding 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
8 
• Three types of sharding: hash-based, range-based, tag-aware 
• Increase or decrease capacity as you go 
• Automatic balancing
Sharding? 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
9 
No sharding required 
But you can still shard 
• Easy to shard a later Date 
– Good shard key choice essential
Resilience 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
10 
• Replica sets require uneven number. 
West Coast DC Central DC 
East Coast 
DC 
Secondary 
priority = 5 
Primary 
priority = 10 
Secondary 
Priority = 5 
Secondary 
priority = 10 
Arbiter
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
11 
MongoDB Management 
Service (MMS) 
The Easiest Way to 
Run MongoDB
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
12 
What MMS can 
do 
Deploy 
Upgrade 
Scale 
Continuous Backup 
Point-in-Time Recovery 
Performance Alerts
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
13 
How MMS Works
Common Tasks, 
Performed in 
Minutes 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
14 
Deploy – any size, most topologies 
• Upgrade/Downgrade – with no downtime 
• Scale – add/remove shards or replicas, with no downtime 
• Resize Oplog – with no downtime 
• Specify users, roles, custom roles 
• Provision AWS instances and optimize for MongoDB
MMS – Monitor and 
Backup 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
15 
• Monitor multiple MongoDB metrics 
• Point in Time
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
16 
OAK
OAK - Goals 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
17 
Support Big repositories 
• Distributed repository 
• Improved write throughput 
• Support for many child nodes 
• Support for many ACLs 
• Built in clustering. Instead of built on top 
• OSGi friendly
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
18 
OAK Architecture
Available MK 
Impl 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
19 
MongoMK 
Built over MongoDB as persistance layer. 
– Build for rapid sync between nodes 
• TarMK 
– Built over Tar file system 
– Build for speed. 
– Can be resiliant with 1.0.8 release.
MongoMK 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
20 
Exposes Micro kernel API 
• Implements a DocumentStore 
– DocumentMK and DocumentNodeStore 
• MVCC Approach 
• GIT/SVN-inspired DAG-based versioning model [0] 
[0] http://wiki.apache.org/jackrabbit/RepositoryMicroKernel?action=AttachFile&do=view&target=MicroKernel+Revision+Model.pdf
MVCC 
• In JCR 2 sessions always reflects the latest state of the repository. 
• In Oak a session reflects a stable view of the repository from the time the session was 
Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
21 
acquired. 
Counter = 1 
Session 1 
Counter = 0 
Session 2 
Counter = 0 
getCounter()? 
returns 0 
Counter+1 = 1 
Time 
Counter = 1 
Counter+1 = 1 
JCR 
Counter = 0
Scaling 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
22 
Advantages of MVCC: 
Session cannot contain references to nodes that are not accessible anymore 
– The MVCC model makes it possible to scale the repository significantly better 
• Disadvantage of MVCC: 
– Session may work on data that has been updated in another session. 
• avoiding long-running sessions is recommended. 
• If two sessions perform modifications relying on one session seeing the other session’s 
changes, call Session.refresh(). 
– Write skew: in two non-conflicting commits on NodeStore level can lead to JCR 
level constraints being violated 
• exception handling on saving/committing the session was required before so keep it there.
Data Structure 
Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
23 
• simple JSON-inspired data model: 
nodes and properties 
• properties are name/value pairs 
• supported property types: string, 
number, boolean, array 
• a property value is stored and used as 
an opaque, unparsed character 
sequence
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
24 
PRACTICE OF THE 
BEST
Hardening 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
25 
Only traffic from trusted sources can reach mongod instances 
• mongod instances can only connect to trusted outputs. 
• In Addition: 
– The “nohttpinterface” setting for mongod instances disables the “home” status page, which 
would run on port 28017 by default. Disable this option for production deployments 
– The REST setting for mongod enables a fully interactive administrative REST interface, 
which is disabled by default. Disable this option for production deployments. 
– bind_ip setting for mongod and mongos instances limits the network interfaces on which 
MongoDB programs will listen for incoming connections. You can also specify a number of 
interfaces by passing bind_ip a comma separated list of IP addresses.
Backup 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
26 
Use MongoDB tools to create a backup of the repository db. 
• Preferred sequence: 
– Create replica of MongoDB primary (if not already available) 
– Optional: create checkpoint on MongoDB to handle merged conflicts 
– Stop replication 
– Perform backup 
– Restart replication 
• MongoDB Managed Service can be used to create a backup.
General 
guidance 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
27 
Be sure you have the latest stable release. 
• Always use 64-bit builds for production. 
• Linux kernel version 2.6.36 or later. 
• Ext4 and XFS file systems are preffered. 
• Arbiter to run on their own server. 
• Tune connection pool size to avoid flooding the instance 
• Consider separating data, journal, and logs to different storage devices 
• On AWS it is recommended to use Ephermal SSD or SSD Backed EBS.
Monitoring 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
28 
SaaS options 
MongoDB Management Service 
– Scout 
– Server Density 
• On premise options 
– Nagios 
– Munin 
– MongoDB Management Service
oplog 
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
29 
Idempotent log of operations 
• Same size on all members of a replica set. 
• By default it will use 5% of available disk space 
• Should be at least 72hrs to a weeks of operations.
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
30
• Click to edit Master text styles 
– Second level 
• Third level 
– Fourth level 
» Fifth level 
31

More Related Content

What's hot

MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF Python
Mike Dirolf
 
Gotszling mogo db-membase
Gotszling mogo db-membaseGotszling mogo db-membase
Gotszling mogo db-membaseGiltTech
 
CFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful CodeCFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful Code
indiver
 
Advance java session 15
Advance java session 15Advance java session 15
Advance java session 15
Smita B Kumar
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deployment
Karthik .P.R
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Dylan Butler
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel Components
Christian Posta
 
What can-be-done-around-mesos
What can-be-done-around-mesosWhat can-be-done-around-mesos
What can-be-done-around-mesos
Zhou Weitao
 
Memcached, presented to LCA2010
Memcached, presented to LCA2010Memcached, presented to LCA2010
Memcached, presented to LCA2010Mark Atwood
 
MongoDB London PHP
MongoDB London PHPMongoDB London PHP
MongoDB London PHP
Mike Dirolf
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
Design and architecture of Jackrabbit
Design and architecture of JackrabbitDesign and architecture of Jackrabbit
Design and architecture of Jackrabbit
Jukka Zitting
 
Understanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQLUnderstanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQL
Hyderabad Scalability Meetup
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
René Cannaò
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
Colin Charles
 
Optimising for Performance
Optimising for PerformanceOptimising for Performance
Optimising for Performance
thomas_mb
 
Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014
Barney Hanlon
 
Php & web server performace
Php & web server performacePhp & web server performace
Php & web server performaceTuyển Đoàn
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
BuilHigh Performance Weibo Platform-Qcon2011
BuilHigh Performance Weibo Platform-Qcon2011BuilHigh Performance Weibo Platform-Qcon2011
BuilHigh Performance Weibo Platform-Qcon2011Yiwei Ma
 

What's hot (20)

MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF Python
 
Gotszling mogo db-membase
Gotszling mogo db-membaseGotszling mogo db-membase
Gotszling mogo db-membase
 
CFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful CodeCFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful Code
 
Advance java session 15
Advance java session 15Advance java session 15
Advance java session 15
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deployment
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel Components
 
What can-be-done-around-mesos
What can-be-done-around-mesosWhat can-be-done-around-mesos
What can-be-done-around-mesos
 
Memcached, presented to LCA2010
Memcached, presented to LCA2010Memcached, presented to LCA2010
Memcached, presented to LCA2010
 
MongoDB London PHP
MongoDB London PHPMongoDB London PHP
MongoDB London PHP
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
Design and architecture of Jackrabbit
Design and architecture of JackrabbitDesign and architecture of Jackrabbit
Design and architecture of Jackrabbit
 
Understanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQLUnderstanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQL
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
Optimising for Performance
Optimising for PerformanceOptimising for Performance
Optimising for Performance
 
Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014
 
Php & web server performace
Php & web server performacePhp & web server performace
Php & web server performace
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
BuilHigh Performance Weibo Platform-Qcon2011
BuilHigh Performance Weibo Platform-Qcon2011BuilHigh Performance Weibo Platform-Qcon2011
BuilHigh Performance Weibo Platform-Qcon2011
 

Viewers also liked

Events management team job roles
Events management team job rolesEvents management team job roles
Events management team job rolesAshleighG
 
Events management team job roles
Events management team job rolesEvents management team job roles
Events management team job rolesAshleighG
 
Committee's for Event planning
Committee's for Event planningCommittee's for Event planning
Committee's for Event planningkaren33mn
 
Event Management
Event ManagementEvent Management
Event Management
Mayank Dixit
 

Viewers also liked (6)

Hierarchy
HierarchyHierarchy
Hierarchy
 
Events management team job roles
Events management team job rolesEvents management team job roles
Events management team job roles
 
Events management team job roles
Events management team job rolesEvents management team job roles
Events management team job roles
 
Committee's for Event planning
Committee's for Event planningCommittee's for Event planning
Committee's for Event planning
 
Event Management
Event ManagementEvent Management
Event Management
 
Event management
Event managementEvent management
Event management
 

Similar to MongoDB and MongoMK Source Event

Geek Sync | Azure Cloud & You: First Steps for the DBA
Geek Sync | Azure Cloud & You: First Steps for the DBAGeek Sync | Azure Cloud & You: First Steps for the DBA
Geek Sync | Azure Cloud & You: First Steps for the DBA
IDERA Software
 
New Developments in the BREACH attack
New Developments in the BREACH attackNew Developments in the BREACH attack
New Developments in the BREACH attack
E Hacking
 
Bypassing malware detection mechanisms in online banking
Bypassing malware detection mechanisms in online bankingBypassing malware detection mechanisms in online banking
Bypassing malware detection mechanisms in online bankingJakub Kałużny
 
Geek Sync | Successfully Migrating Existing Databases to Azure SQL Database
Geek Sync | Successfully Migrating Existing Databases to Azure SQL DatabaseGeek Sync | Successfully Migrating Existing Databases to Azure SQL Database
Geek Sync | Successfully Migrating Existing Databases to Azure SQL Database
IDERA Software
 
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
TAUS - The Language Data Network
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
MongoDB
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
MongoDB
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
Mydbops
 
Evolution Of MongoDB Replicaset
Evolution Of MongoDB ReplicasetEvolution Of MongoDB Replicaset
Evolution Of MongoDB Replicaset
M Malai
 
MongoDB
MongoDBMongoDB
Mysql-Basics.pptx
Mysql-Basics.pptxMysql-Basics.pptx
Mysql-Basics.pptx
ssuserf5adce
 
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
Esri UK
 
Geek Sync | Tips for Data Warehouses and Other Very Large Databases
Geek Sync | Tips for Data Warehouses and Other Very Large DatabasesGeek Sync | Tips for Data Warehouses and Other Very Large Databases
Geek Sync | Tips for Data Warehouses and Other Very Large Databases
IDERA Software
 
MongoDB Pros and Cons
MongoDB Pros and ConsMongoDB Pros and Cons
MongoDB Pros and Cons
johnrjenson
 
Disaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQLDisaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQL
Syed Jahanzaib Bin Hassan - JBH Syed
 
Running MongoDB 3.0 on AWS
Running MongoDB 3.0 on AWSRunning MongoDB 3.0 on AWS
Running MongoDB 3.0 on AWS
MongoDB
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
mathraq
 
Geek Sync | Database People and DevOps: The Fundamentals
Geek Sync | Database People and DevOps: The FundamentalsGeek Sync | Database People and DevOps: The Fundamentals
Geek Sync | Database People and DevOps: The Fundamentals
IDERA Software
 
Building Blockchain Solutions with Algorand Developer Tools
Building Blockchain Solutions with Algorand Developer ToolsBuilding Blockchain Solutions with Algorand Developer Tools
Building Blockchain Solutions with Algorand Developer Tools
Russ Fustino
 

Similar to MongoDB and MongoMK Source Event (20)

Geek Sync | Azure Cloud & You: First Steps for the DBA
Geek Sync | Azure Cloud & You: First Steps for the DBAGeek Sync | Azure Cloud & You: First Steps for the DBA
Geek Sync | Azure Cloud & You: First Steps for the DBA
 
New Developments in the BREACH attack
New Developments in the BREACH attackNew Developments in the BREACH attack
New Developments in the BREACH attack
 
Bypassing malware detection mechanisms in online banking
Bypassing malware detection mechanisms in online bankingBypassing malware detection mechanisms in online banking
Bypassing malware detection mechanisms in online banking
 
Geek Sync | Successfully Migrating Existing Databases to Azure SQL Database
Geek Sync | Successfully Migrating Existing Databases to Azure SQL DatabaseGeek Sync | Successfully Migrating Existing Databases to Azure SQL Database
Geek Sync | Successfully Migrating Existing Databases to Azure SQL Database
 
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
TAUS Moses Industry Roundtable 2014, Changes in Moses, Hieu Hoang, University...
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
 
Evolution Of MongoDB Replicaset
Evolution Of MongoDB ReplicasetEvolution Of MongoDB Replicaset
Evolution Of MongoDB Replicaset
 
MongoDB
MongoDBMongoDB
MongoDB
 
Mysql-Basics.pptx
Mysql-Basics.pptxMysql-Basics.pptx
Mysql-Basics.pptx
 
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
Advanced Analytics - Smart Analytics - Esri UK Annual Conference 2017
 
Geek Sync | Tips for Data Warehouses and Other Very Large Databases
Geek Sync | Tips for Data Warehouses and Other Very Large DatabasesGeek Sync | Tips for Data Warehouses and Other Very Large Databases
Geek Sync | Tips for Data Warehouses and Other Very Large Databases
 
MongoDB Pros and Cons
MongoDB Pros and ConsMongoDB Pros and Cons
MongoDB Pros and Cons
 
Disaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQLDisaster Recovery Site Implementation with MySQL
Disaster Recovery Site Implementation with MySQL
 
Running MongoDB 3.0 on AWS
Running MongoDB 3.0 on AWSRunning MongoDB 3.0 on AWS
Running MongoDB 3.0 on AWS
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Geek Sync | Database People and DevOps: The Fundamentals
Geek Sync | Database People and DevOps: The FundamentalsGeek Sync | Database People and DevOps: The Fundamentals
Geek Sync | Database People and DevOps: The Fundamentals
 
Building Blockchain Solutions with Algorand Developer Tools
Building Blockchain Solutions with Algorand Developer ToolsBuilding Blockchain Solutions with Algorand Developer Tools
Building Blockchain Solutions with Algorand Developer Tools
 

Recently uploaded

How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

MongoDB and MongoMK Source Event

  • 1. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 1 MongoDB & MongoMK Mark Puddick (MongoDB) and Yuval Ararat (Adobe)
  • 2. Agenda • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 2 MongoDB? • Enterprise on my mind • Moving In! • Practice of the Best!
  • 3. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 3
  • 4. What is MongoDB? • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 4 Document Orientated Database • Open source • High performance • Horizontally scalable • Full featured
  • 5. Document Model • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 5 JSON • Binary = BSON • Index-able
  • 6. Clustering • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 6 Replica Set • Sharding
  • 7. Replica Set • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 7 Replica Set – two or more copies • Self-healing shard • Addresses availability considerations • High Availability • Disaster Recovery • Maintenance • Deployment Flexibility • Data locality to users • Workload isolation: operational & analytics
  • 8. Sharding • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 8 • Three types of sharding: hash-based, range-based, tag-aware • Increase or decrease capacity as you go • Automatic balancing
  • 9. Sharding? • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 9 No sharding required But you can still shard • Easy to shard a later Date – Good shard key choice essential
  • 10. Resilience • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 10 • Replica sets require uneven number. West Coast DC Central DC East Coast DC Secondary priority = 5 Primary priority = 10 Secondary Priority = 5 Secondary priority = 10 Arbiter
  • 11. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 11 MongoDB Management Service (MMS) The Easiest Way to Run MongoDB
  • 12. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 12 What MMS can do Deploy Upgrade Scale Continuous Backup Point-in-Time Recovery Performance Alerts
  • 13. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 13 How MMS Works
  • 14. Common Tasks, Performed in Minutes • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 14 Deploy – any size, most topologies • Upgrade/Downgrade – with no downtime • Scale – add/remove shards or replicas, with no downtime • Resize Oplog – with no downtime • Specify users, roles, custom roles • Provision AWS instances and optimize for MongoDB
  • 15. MMS – Monitor and Backup • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 15 • Monitor multiple MongoDB metrics • Point in Time
  • 16. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 16 OAK
  • 17. OAK - Goals • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 17 Support Big repositories • Distributed repository • Improved write throughput • Support for many child nodes • Support for many ACLs • Built in clustering. Instead of built on top • OSGi friendly
  • 18. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 18 OAK Architecture
  • 19. Available MK Impl • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 19 MongoMK Built over MongoDB as persistance layer. – Build for rapid sync between nodes • TarMK – Built over Tar file system – Build for speed. – Can be resiliant with 1.0.8 release.
  • 20. MongoMK • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 20 Exposes Micro kernel API • Implements a DocumentStore – DocumentMK and DocumentNodeStore • MVCC Approach • GIT/SVN-inspired DAG-based versioning model [0] [0] http://wiki.apache.org/jackrabbit/RepositoryMicroKernel?action=AttachFile&do=view&target=MicroKernel+Revision+Model.pdf
  • 21. MVCC • In JCR 2 sessions always reflects the latest state of the repository. • In Oak a session reflects a stable view of the repository from the time the session was Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 21 acquired. Counter = 1 Session 1 Counter = 0 Session 2 Counter = 0 getCounter()? returns 0 Counter+1 = 1 Time Counter = 1 Counter+1 = 1 JCR Counter = 0
  • 22. Scaling • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 22 Advantages of MVCC: Session cannot contain references to nodes that are not accessible anymore – The MVCC model makes it possible to scale the repository significantly better • Disadvantage of MVCC: – Session may work on data that has been updated in another session. • avoiding long-running sessions is recommended. • If two sessions perform modifications relying on one session seeing the other session’s changes, call Session.refresh(). – Write skew: in two non-conflicting commits on NodeStore level can lead to JCR level constraints being violated • exception handling on saving/committing the session was required before so keep it there.
  • 23. Data Structure Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 23 • simple JSON-inspired data model: nodes and properties • properties are name/value pairs • supported property types: string, number, boolean, array • a property value is stored and used as an opaque, unparsed character sequence
  • 24. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 24 PRACTICE OF THE BEST
  • 25. Hardening • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 25 Only traffic from trusted sources can reach mongod instances • mongod instances can only connect to trusted outputs. • In Addition: – The “nohttpinterface” setting for mongod instances disables the “home” status page, which would run on port 28017 by default. Disable this option for production deployments – The REST setting for mongod enables a fully interactive administrative REST interface, which is disabled by default. Disable this option for production deployments. – bind_ip setting for mongod and mongos instances limits the network interfaces on which MongoDB programs will listen for incoming connections. You can also specify a number of interfaces by passing bind_ip a comma separated list of IP addresses.
  • 26. Backup • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 26 Use MongoDB tools to create a backup of the repository db. • Preferred sequence: – Create replica of MongoDB primary (if not already available) – Optional: create checkpoint on MongoDB to handle merged conflicts – Stop replication – Perform backup – Restart replication • MongoDB Managed Service can be used to create a backup.
  • 27. General guidance • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 27 Be sure you have the latest stable release. • Always use 64-bit builds for production. • Linux kernel version 2.6.36 or later. • Ext4 and XFS file systems are preffered. • Arbiter to run on their own server. • Tune connection pool size to avoid flooding the instance • Consider separating data, journal, and logs to different storage devices • On AWS it is recommended to use Ephermal SSD or SSD Backed EBS.
  • 28. Monitoring • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 28 SaaS options MongoDB Management Service – Scout – Server Density • On premise options – Nagios – Munin – MongoDB Management Service
  • 29. oplog • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 29 Idempotent log of operations • Same size on all members of a replica set. • By default it will use 5% of available disk space • Should be at least 72hrs to a weeks of operations.
  • 30. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 30
  • 31. • Click to edit Master text styles – Second level • Third level – Fourth level » Fifth level 31