SlideShare a Scribd company logo
Webinar Back to Basics 3 - Introduzione ai Replica Set
Back to Basics 2017 : Webinar 3
Introduzione ai Replica Set
Massimo Brignoli
Principal Solutions Architect
MongoDB
@massimobrignoli
massimo@mongodb.com
V1.0
Riassunto della Parti 1 e 2
• Perché esistono i NoSQL
• I Tipi di database NoSQL
• Le funzionalità chiave di MongoDB
• Come installare MongoDB
• Come eseguire le operazioni CRUD di base
• Come creare gli indici
• Come usare la funzione explain()
• MongoDB Compass e MongoDB Atlas
Agenda
• Durabilità dei Dati
• L’approccio di MongoDB: i Replica Set
• Il ciclo di vita di un Replica Set
• Come scrivere codice quando si usa un replica set
Replica Sets
• Replica set – da 2 a 50 repliche
• Replica sets crea un self-healing ‘shard’
• Data center awareness
• Replica sets indirizza:
• Alta affidabilità
• Durabilità e Consistenza
• Manutenzione (e.g., HW swaps)
• Disaster Recovery
Application
Driver
Primary
Secondary
Secondary
Replication
Replica Sets – Workload Isolation
• Replica sets abilitano la separazione dei workload
• Esempio: workload operazionale sul nodo primario e il
workload analitico sui nodi secondari
eCommerce Application
MongoDB Primary
In-memory Storage Engine
MongoDB Secondary
WiredTiger Storage Engine
User Data
Sessions, Cart,
Recommendations
MongoDB Secondary
WiredTiger Storage Engine
Persisted
User Data
Node 1
Node 2 Node 3
Replica Set - Creazione
Node 1
(Primary)
Node 2 Node 3
Replica Set - Inizializzazione
 rs.initiate()
Node 1
(Primary)
Node 2
(Secondary)
Node 3
Replication
Heartbeat
Replica Set – Secondo nodo
 rs.initiate()
 rs.add(“nodo2”)
Node 1
(Primary)
Node 2
(Secondary)
Node 3
(Secondary)
Replication Replication
Heartbeat
Replica Set –Terzo nodo
 rs.initiate()
 rs.add(“nodo2”)
 rs.add(“nodo3”)
Node 2
(Secondary)
Node 3
(Secondary)
Heartbeat
Primary Election
Node 1
(Primary)
Replica Set – Failure Primary
Node 1
(Primary)
Node 2
(Primary)
Node 3
(Secondary)
Heartbeat
Replication
Replica Set - Failover
Node 2
(Primary)
Node 3
(Secondary)
Heartbeat
Replication
Node 1
(Recovery)
Replication
Replica Set - Recovery
Node 2
(Primary)
Node 3
(Secondary)
Heartbeat
Replication
Node 1
(Secondary)
Replication
Replica Set - Recovered
Node 1
(Primary)
Node 2
(Secondary)
Node 3
(Secondary)
Application
Driver
Read and write
Strong Consistency
Node 1
(Primary)
Node 2
(Secondary)
Node 3
(Secondary)
Application
Driver
Eventual Consistency
Read Read
Read and write
Improved Tunable Consistency
• maxStalenessMS
• Decide come e quando reindirizzare le query alle repliche
secondarie
• Legge dalle repliche solo se sono all’interno di una finestra di
consistenza definita
• Migliora la qualità dei dati mentre si scalano le letture sui
secondari
• readConcern “linearizable” per la consistenza più forte
• Assicura che un nodo sia il primario al momentEnsure that a o
della lettura
• Assicura che I dati ritornati non saranno mai rollbackati se un
altro nodo è eletto come primario
Architettura Replicazione Oplog
Oplog
Rollback
Durabilità – writeConcern
Può perdere dati in caso
di caduta del primario
senza nessuna notifica.
Durabilità – writeConcern
In caso di caduta del
Primary garantisce la
non perdita di dati, in
quanto già replicati su
un altro nodo.
Overview
Overview
Insert arriva al primario
Secondario fa tail dell’oplog
Secondario prepara un batch
Prefetch Workers
Partiziona i batch per collection
Applica le entry
Aggiorna oplog locale
Informa il Primary dell’optime
Primary notifica il client
Driver Responsibilities
https://github.com/mongodb/mongo-python-driver
Driver
Authentication
& Security
Python<->BSON
Error handling &
Recovery
Wire
Protocol
Topology
Management
Connection Pool
Inizializzare MongoClient
c = MongoClient( "host1, host2",
replicaSet="replset" )
Vista Client Side
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
MongoClient( "host1, host2",
replicaSet="replset" )
Vista Client Side
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
{ ismaster : False,
secondary: True,
hosts : [ host1, host2, host3 ] }
Il Comando ismaster
>>> pprint.pprint( db.command( "ismaster"
))
{u'hosts': [u'JD10Gen-old.local:27017',
u'JD10Gen-old.local:27018',
u'JD10Gen-old.local:27019'],
u'ismaster' : False,
u'secondary': True,
u'setName' : u'replset',
…}
Topologia
Current
Topology
ismaster
New
Topology
Vista Client Side
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Vista Client Side
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Vista Client Side
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Facciamo una insert
c = MongoClient( "host1, host2",
replicaSet="replset" )
client.db.col.insert_one( { "a" : "b" } )
Insert si blocca
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Insert
Risposta ismaster da Host 1
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Insert
ismaster
Ora la scrittura può procedere
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Insert Insert
Più tardi, il server host3 risponde
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Steady State
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
La vita Interviene
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
✖
Il Monitor può non essersi accordo
Secondary
host2
Secondary
host3
Primary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
✖
Insert
ConnectionFailure
Quindi riprova
Secondary
host2
Secondary
host3
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
✖
Insert
Controlla il Primary
Secondary
host2
Secondary
host3
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
✖
Insert
Host 2 è il Primary
Primary
host2
Secondary
host3
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
✖
Insert
Steady State
Primary
host2
Secondary
host3
Secondary
host1
Mongo
Client
Monitor
Thread 1
Monitor
Thread 2
Monitor
Thread 3
Your
Code
Cosa significa? - Connect
import pymongo
client = pymongo.MongoClient()
try:
client.admin.command( "ismaster" )
except pymongo.errors.ConnectionFailure, e :
print( "Cannot connect: %s" % e )
Cosa Significa? - Queries
import pymongo
def find_with_recovery( collection, query ) :
try:
return collection.find_one( query )
except pymongo.errors.ConnectionFailure, e :
logging.info( "Connection failure : %s" e )
return collection.find_one( query )
Cosa significa? - Inserts
def insert_with_recovery( collection, doc ) :
doc[ "_id" ] = ObjectId()
try:
collection.insert_one( doc )
except pymongo.errors.ConnectionFailure, e:
logging.info( "Connection error: %s" % e )
collection.insert_one( doc )
except DuplicateKeyError:
pass
Cosa Significa? - Updates
collection.update( { "_id" : 1 },
{ "$inc" : { "counter" : 1
}})
Approfondimenti
• Jess Jiryu Davis ha una versione approfondita di questo talk
https://emptysqua.re/blog/server-discovery-and-monitoring-in-mongodb-
drivers/
• Specifiche del server discovery e monitoring
https://github.com/mongodb/specifications/blob/master/source/server-
discovery-and-monitoring/server-discovery-and-monitoring.rst
Ultimo Webinar : Sharding
• Come costruire un cluster altamente scalabile e performante
• Come rimuovere i colli di bottiglia in scrittura
• Come scegliere la chiave di partizionamento
Martedì, 27 Giugno 2017, ore 11:00.
Q&A

More Related Content

PPTX
Understanding and tuning WiredTiger, the new high performance database engine...
Ontico
 
PPTX
Back to Basics Webinar 6: Production Deployment
MongoDB
 
PDF
Optimizing MongoDB: Lessons Learned at Localytics
andrew311
 
PDF
Шардинг в MongoDB, Henrik Ingo (MongoDB)
Ontico
 
PPTX
Back to Basics Spanish 4 Introduction to sharding
MongoDB
 
PPTX
Back to Basics 2017: Introduction to Sharding
MongoDB
 
PPTX
Sharding
MongoDB
 
PDF
Back to Basics 2017: Mí primera aplicación MongoDB
MongoDB
 
Understanding and tuning WiredTiger, the new high performance database engine...
Ontico
 
Back to Basics Webinar 6: Production Deployment
MongoDB
 
Optimizing MongoDB: Lessons Learned at Localytics
andrew311
 
Шардинг в MongoDB, Henrik Ingo (MongoDB)
Ontico
 
Back to Basics Spanish 4 Introduction to sharding
MongoDB
 
Back to Basics 2017: Introduction to Sharding
MongoDB
 
Sharding
MongoDB
 
Back to Basics 2017: Mí primera aplicación MongoDB
MongoDB
 

What's hot (20)

PDF
Setting up mongodb sharded cluster in 30 minutes
Sudheer Kondla
 
PDF
MongoDB Sharding Fundamentals
Antonios Giannopoulos
 
PPTX
Introduction to Sharding
MongoDB
 
PPTX
Back to Basics Spanish Webinar 3 - Introducción a los replica sets
MongoDB
 
PDF
A New MongoDB Sharding Architecture for Higher Availability and Better Resour...
leifwalsh
 
PDF
Containers > VMs
David Timothy Strauss
 
PDF
MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think...
MongoDB
 
PPTX
Basic Sharding in MongoDB presented by Shaun Verch
MongoDB
 
PPTX
Sharding Methods for MongoDB
MongoDB
 
PPTX
Introduction to Redis
Arnab Mitra
 
PDF
Development to Production with Sharded MongoDB Clusters
Severalnines
 
PPTX
Running MongoDB 3.0 on AWS
MongoDB
 
PDF
Exploring the replication in MongoDB
Igor Donchovski
 
KEY
Redis overview for Software Architecture Forum
Christopher Spring
 
PPT
Optimizing MongoDB: Lessons Learned at Localytics
Benjamin Darfler
 
PPTX
MongoDB San Francisco 2013: Basic Sharding in MongoDB presented by Brandon Bl...
MongoDB
 
PDF
MongoDB memory management demystified
Alon Horev
 
PPTX
MongoDB Auto-Sharding at Mongo Seattle
MongoDB
 
PDF
Challenges with MongoDB
Stone Gao
 
Setting up mongodb sharded cluster in 30 minutes
Sudheer Kondla
 
MongoDB Sharding Fundamentals
Antonios Giannopoulos
 
Introduction to Sharding
MongoDB
 
Back to Basics Spanish Webinar 3 - Introducción a los replica sets
MongoDB
 
A New MongoDB Sharding Architecture for Higher Availability and Better Resour...
leifwalsh
 
Containers > VMs
David Timothy Strauss
 
MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think...
MongoDB
 
Basic Sharding in MongoDB presented by Shaun Verch
MongoDB
 
Sharding Methods for MongoDB
MongoDB
 
Introduction to Redis
Arnab Mitra
 
Development to Production with Sharded MongoDB Clusters
Severalnines
 
Running MongoDB 3.0 on AWS
MongoDB
 
Exploring the replication in MongoDB
Igor Donchovski
 
Redis overview for Software Architecture Forum
Christopher Spring
 
Optimizing MongoDB: Lessons Learned at Localytics
Benjamin Darfler
 
MongoDB San Francisco 2013: Basic Sharding in MongoDB presented by Brandon Bl...
MongoDB
 
MongoDB memory management demystified
Alon Horev
 
MongoDB Auto-Sharding at Mongo Seattle
MongoDB
 
Challenges with MongoDB
Stone Gao
 
Ad

Similar to Webinar Back to Basics 3 - Introduzione ai Replica Set (20)

PPTX
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
 
PPTX
Back to Basics German 3: Einführung in Replica Sets
MongoDB
 
PPTX
Replication and replica sets
Chris Westin
 
PDF
Evolution of MongoDB Replicaset and Its Best Practices
Mydbops
 
PPTX
Practical Replication June-2011
Chris Westin
 
PDF
Evolution Of MongoDB Replicaset
M Malai
 
PDF
MongoDB Database Replication
Mehdi Valikhani
 
PPTX
EuroPython 2016 : A Deep Dive into the Pymongo Driver
Joe Drumgoole
 
DOCX
MongoDB Replication and Sharding
Tharun Srinivasa
 
KEY
MongoDB Administration ~ Kevin Hanson
hungarianhc
 
PPT
High Availabiltity & Replica Sets with mongoDB
Gareth Davies
 
PDF
Practical Consistency
David Golden
 
PDF
MongoDB Part 2
techwhizbang
 
PPTX
Webinar: Replication and Replica Sets
MongoDB
 
PPTX
Get expertise with mongo db
Amit Thakkar
 
PDF
Mongodb replication
PoguttuezhiniVP
 
PPTX
Conceptos básicos. Seminario web 6: Despliegue de producción
MongoDB
 
PPTX
Advanced Replication
MongoDB
 
PPTX
Back to basics Italian webinar 2 Mia prima applicazione MongoDB
MongoDB
 
PPTX
MongoDB - Back to Basics - La tua prima Applicazione
Massimo Brignoli
 
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB
 
Back to Basics German 3: Einführung in Replica Sets
MongoDB
 
Replication and replica sets
Chris Westin
 
Evolution of MongoDB Replicaset and Its Best Practices
Mydbops
 
Practical Replication June-2011
Chris Westin
 
Evolution Of MongoDB Replicaset
M Malai
 
MongoDB Database Replication
Mehdi Valikhani
 
EuroPython 2016 : A Deep Dive into the Pymongo Driver
Joe Drumgoole
 
MongoDB Replication and Sharding
Tharun Srinivasa
 
MongoDB Administration ~ Kevin Hanson
hungarianhc
 
High Availabiltity & Replica Sets with mongoDB
Gareth Davies
 
Practical Consistency
David Golden
 
MongoDB Part 2
techwhizbang
 
Webinar: Replication and Replica Sets
MongoDB
 
Get expertise with mongo db
Amit Thakkar
 
Mongodb replication
PoguttuezhiniVP
 
Conceptos básicos. Seminario web 6: Despliegue de producción
MongoDB
 
Advanced Replication
MongoDB
 
Back to basics Italian webinar 2 Mia prima applicazione MongoDB
MongoDB
 
MongoDB - Back to Basics - La tua prima Applicazione
Massimo Brignoli
 
Ad

More from MongoDB (20)

PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
PDF
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
PDF
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
PDF
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
PDF
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
PDF
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
PDF
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
PDF
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
PDF
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
PDF
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
PDF
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 

Recently uploaded (20)

PDF
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 
PDF
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
Fuzzy_Membership_Functions_Presentation.pptx
pythoncrazy2024
 
PDF
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 
PDF
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
PPTX
IP_Journal_Articles_2025IP_Journal_Articles_2025
mishell212144
 
PDF
Technical Writing Module-I Complete Notes.pdf
VedprakashArya13
 
PPTX
Introduction-to-Python-Programming-Language (1).pptx
dhyeysapariya
 
PPTX
Employee Salary Presentation.l based on data science collection of data
barridevakumari2004
 
PDF
oop_java (1) of ice or cse or eee ic.pdf
sabiquntoufiqlabonno
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
PPTX
Introduction to Data Analytics and Data Science
KavithaCIT
 
PDF
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
PDF
The_Future_of_Data_Analytics_by_CA_Suvidha_Chaplot_UPDATED.pdf
CA Suvidha Chaplot
 
PDF
SUMMER INTERNSHIP REPORT[1] (AutoRecovered) (6) (1).pdf
pandeydiksha814
 
PDF
Research about a FoodFolio app for personalized dietary tracking and health o...
AustinLiamAndres
 
PPTX
Power BI in Business Intelligence with AI
KPR Institute of Engineering and Technology
 
PPTX
World-population.pptx fire bunberbpeople
umutunsalnsl4402
 
PPTX
Multiscale Segmentation of Survey Respondents: Seeing the Trees and the Fores...
Sione Palu
 
PPTX
Presentation (1) (1).pptx k8hhfftuiiigff
karthikjagath2005
 
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Fuzzy_Membership_Functions_Presentation.pptx
pythoncrazy2024
 
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
IP_Journal_Articles_2025IP_Journal_Articles_2025
mishell212144
 
Technical Writing Module-I Complete Notes.pdf
VedprakashArya13
 
Introduction-to-Python-Programming-Language (1).pptx
dhyeysapariya
 
Employee Salary Presentation.l based on data science collection of data
barridevakumari2004
 
oop_java (1) of ice or cse or eee ic.pdf
sabiquntoufiqlabonno
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
Introduction to Data Analytics and Data Science
KavithaCIT
 
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
The_Future_of_Data_Analytics_by_CA_Suvidha_Chaplot_UPDATED.pdf
CA Suvidha Chaplot
 
SUMMER INTERNSHIP REPORT[1] (AutoRecovered) (6) (1).pdf
pandeydiksha814
 
Research about a FoodFolio app for personalized dietary tracking and health o...
AustinLiamAndres
 
Power BI in Business Intelligence with AI
KPR Institute of Engineering and Technology
 
World-population.pptx fire bunberbpeople
umutunsalnsl4402
 
Multiscale Segmentation of Survey Respondents: Seeing the Trees and the Fores...
Sione Palu
 
Presentation (1) (1).pptx k8hhfftuiiigff
karthikjagath2005
 

Webinar Back to Basics 3 - Introduzione ai Replica Set

Editor's Notes

  • #3: Who I am, how long have I been at MongoDB.
  • #6: High Availability – Ensure application availability during many types of failures Meet stringent SLAs with fast-failover algorithm Under 2 seconds to detect and recover from replica set primary failure Disaster Recovery – Address the RTO and RPO goals for business continuity Maintenance – Perform upgrades and other maintenance operations with no application downtime Secondaries can be used for a variety of applications – failover, hot backup, rolling upgrades, data locality and privacy and workload isolation
  • #35: Present a native language interface - converts python types to BSON objects Convert the JSON query language into commands for the database Convert JSON data into BSON data and vice-versa Handles interfacing to different MongoDB topologies Helps recover from server side outages/network errors Manages the client side connection pool The pymongo driver code is on Github (Apache License)
  • #37: Calls i
  • #38: Calls i
  • #40: State machine, full set of states defined in spec.
  • #41: Calls i
  • #42: Calls i
  • #43: Calls i
  • #45: Needs a primary to complete a write.
  • #46: Needs a primary to complete a write.
  • #47: Needs a primary to complete a write.
  • #48: Needs a primary to complete a write.
  • #49: Each thread wakes every 10 seconds. Runs ismaster, sleeps. We use ismaster to check latency. Keep topology description up to date.
  • #50: Each thread wakes every 10 seconds. Runs ismaster, sleeps. We use ismaster to check latency. Keep topology description up to date.
  • #51: Each thread wakes every 10 seconds. Runs ismaster, sleeps. We use ismaster to check latency. Keep topology description up to date.
  • #52: Primary is marked as unknown Wakes up all monitor threads to check for a primary.
  • #53: Primary is marked as unknown Wakes up all monitor threads to check for a primary every half second.
  • #54: Primary is marked as unknown Wakes up all monitor threads to check for a primary every half second.
  • #55: Each thread wakes every 10 seconds. Runs ismaster, sleeps. We use ismaster to check latency. Keep topology description up to date.
  • #57: Try once. This will accomdate elections. Other errore should be propagated.
  • #58: Try once. This will accomdate elections. Other errore should be propagated.
  • #59: Can you afford to over or under count. Operations need to be idempotent. Turn an update into a write of a document, cf EventSourcing. Then aggregate on the server.