SlideShare a Scribd company logo
1 of 85
Immutable Database
Safe Way To Migrate Large Data Stores
@YEVHEN
The true story of one
internal Hackathon
that went South
Go PROD!
BRAVO!
Евгений Бобров
17 лет в IT
Архитектор
Платформа
OSS
YouScan.io
yevhen
Social Media Monitoring
Now using YouScan
2.5Bln docs
7K indices
14K shards
10TB (1 replica)
Data Architecture
T101
T42
T345
20GB
1 shard
40GB
2 shards
120GB
4 shards
Data Schema
"mention": {
"properties": {
"cityId": {
"index": "not_analyzed",
"type": "string"
},
"reactionsWow": {
"type": "integer"
},
"imageScenes": {
"properties": {
"confidence": {
"type": "float“
…
120 fields
10KB avg
Schema Evolution
2015 2016 2017 2018
You’re
here
REINDEXING
V2V1
copy
REINDEXING
Aliases
POST /_aliases/
{
"actions" : [{
"add" : {
"index" : "101_1",
"alias" : "101"
}
}]
}
Custom Alias Table
Topic Index Version
42 42_1 2
101 101_1 3
345 345_1 3
Client Singleton
var es = Elastic.Init(table);
Topic Index Version
42 42_1 2
101 101_1 3
345 345_1 3
Client Code
var result = client.Search(query).Path(topic);
Proxy Function
var result = es.Execute(topic, (index, client) =>
client.Search(query).Path(index));
Transfer
Snapshot Copy
Progress
1
2
1
2
3 3while (lastId <= maxId)
Snapshot Copy
1
2
1
2
3 3
W W W
missing
stale
Progress
DONE
lastId = maxId
DOWNTIME
Service Downtime
Availability % per year per month per week per day
99% 3.65 days 7.31 hours 1.68 hours 14.40 minutes
99.9% 8.77 hours 43.83 minutes 10.08 minutes 1.44 minutes
99.99% 52.60 minutes 4.38 minutes 1.01 minutes 8.64 seconds
50M
2K/sec
= ~7 hours
Event
Source
All the
Things!
Event Sourcing
… Tag
Added
Mention
Created
N 2 1
T42
Projector
Log (FIFO)
1.apply(e) 2.rec(e)
3. apply(e) -> POST/PUT/DELETE
4.query()
Temporal Event Sourcing
… .. …
N 2 1
T42
Projector
1.apply(e)
3.query()
X
2. apply(e) -> POST/PUT/DELETE
Events?
Direct Index Access
T42
CQRS/ES
T42
AddTag API Projector
GET/SEARCH
TagAdded
Event Store
… Tag
Added
Mention
Created
N 2 1
Stream42
… Tag
Removed
Mention
Favorited
N 2 1
Stream102
T42
T102
Projector
Migration
Automata
powered by
Preparing
old
3. GetMaxId()
new
2. Create()
Tag
Added
2 1
1. StartLog()
Copying
Preparing
2 2
while (lastId <= maxId)
…
Tag
Removed
Tag
Added
Mention
Created
4 3 2 1
new
while (remaining > SwitchThreshold)
apply(e)
Replaying
Copying
Switching
Replaying
catchup(tail)
old
Projector
new
tail
Tag
Added
Mention
Created
2 1
Switching
Replaying
old
Projector
new
update(alias)
100%
…
Tag
Added
Mention
Created
2 1
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
Switching
Replaying
new old
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
1.apply(e)
3.query()
Projector
Point Of
No Return!
2.apply(e)
X … Tag
Added
Mention
Created
2 1
New Cluster Migration
YsTokenizer 1.3
ys-es-01
YsTokenizer 2.1
ys-es-02
Minor Changes
Topic Index Version Cluster
42 42_1 2 ys-es-01
101 101_1 3 ys-es-02
345 345_1 3 ys-es-02
var result = es.Execute(topic, (index, client) =>
client.Search(query).Path(index));
transform
Non-Destructive Transformation
text : "Lorem ipsum
http://bit.ly/17f42"
V1
links : ["http://bit.ly/17f42"]
text : "Lorem ipsum
http://bit.ly/17f42"
V2
Convert On Write/Copy
if (version == IndexVersion.Next)
doc.Links = ExtractLinks(doc);
copy.Links = ExtractLinks(src);
Projector:
Copying:
Destructive Transformation
region : "Киев",
city : "Киев"
V1
V2
region : "Киев",
city : "Киев"
regionId : 38044
cityId : 546232
Progressive Destruction
region : "Киев",
city : "Киев"
V1
V3
region : "Киев",
city : "Киев"
V2
region : "Киев",
city : "Киев"
regionId : 38044
cityId : 546232
Backward Compatibility
var result = es.Execute(topic, (index, client) =>
{
var city = index.Version == IndexVersion.Current
? criteria.City
: LookupId(criteria.City);
query = query.Term(“city”).Equals(city);
return client.Search(query).Path(index));
}
V2V1
Switching
Replaying
old
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
1.apply(e)
3.query()
Projector X
Point Of
No Return!
… Tag
Added
Mention
Created
2 1
new
2.apply(e)
Syncing
Switching
… Tag
Added
Mention
Created
2 1
new
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
1.apply(e)
4.query()
Projector
3.apply(e)
2.rec(e)
old
Rollback
Syncing
tail
Tag
Added
Mention
Created
2 1
new
Projector
1.catchup(tail)
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
old
Rollback
Syncing
tail
Tag
Added
Mention
Created
2 1
new
Projector
100%
Topic Index Version
42 42_1 2
101 101_1 3
345 345_1 2
update(alias)
old
Rollback
Syncing
…
Tag
Added
Mention
Created
2 1
old new
3.query()
Projector
1.apply(e)
Topic Index Version
42 42_1 2
101 101_1 3
345 345_1 2
X
2.apply(e)
Parallel Versions
V2V1
sync
Safe Migration
Challenges
Projector
Topic Index Version
42 42_1 2
101 101_1 3
345 345_2 3
… Tag
Added
Mention
Created
2 1
Highly Available
Infrastructure
Conclusions
Immutable infrastructure is
comprised of immutable components
that are replaced for every deployment,
rather than being updated in-place
Immutable Database is
Scalable
Atomic
Fault-tolerant
Efficient
Immutable Database for apps
Stability
Availability
Flexibility
Evolvability
Immutable Database as CD practice
Stability
Availability
Flexibility
Evolvability
SRE
Agile
Immutable Database. Safe Way to Migrate Large Data Stores

More Related Content

What's hot

Big data 101 for beginners riga dev days
Big data 101 for beginners riga dev daysBig data 101 for beginners riga dev days
Big data 101 for beginners riga dev daysDuyhai Doan
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationslucenerevolution
 
Adf walkthrough
Adf walkthroughAdf walkthrough
Adf walkthroughMSDEVMTL
 
Arm yourself with Domain Driven Security. It's time to slay some security trolls
Arm yourself with Domain Driven Security. It's time to slay some security trollsArm yourself with Domain Driven Security. It's time to slay some security trolls
Arm yourself with Domain Driven Security. It's time to slay some security trollsOmegapoint Academy
 
Cassandra nice use cases and worst anti patterns no sql-matters barcelona
Cassandra nice use cases and worst anti patterns no sql-matters barcelonaCassandra nice use cases and worst anti patterns no sql-matters barcelona
Cassandra nice use cases and worst anti patterns no sql-matters barcelonaDuyhai Doan
 
Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Anyscale
 
What's new with Apache Spark's Structured Streaming?
What's new with Apache Spark's Structured Streaming?What's new with Apache Spark's Structured Streaming?
What's new with Apache Spark's Structured Streaming?Miklos Christine
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusterslucenerevolution
 
Domain Driven Security Jfokus 2016
Domain Driven Security Jfokus 2016Domain Driven Security Jfokus 2016
Domain Driven Security Jfokus 2016Omegapoint Academy
 
Sasi, cassandra on full text search ride
Sasi, cassandra on full text search rideSasi, cassandra on full text search ride
Sasi, cassandra on full text search rideDuyhai Doan
 
Indexing in Cassandra
Indexing in CassandraIndexing in Cassandra
Indexing in CassandraEd Anuff
 
Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017Bob Ward
 
EclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL EndgameEclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL EndgameThodoris Bais
 
Sql server hybrid what every sql professional should know
Sql server hybrid what every sql professional should knowSql server hybrid what every sql professional should know
Sql server hybrid what every sql professional should knowBob Ward
 
ShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlChema Alonso
 
Datastax day 2016 : Cassandra data modeling basics
Datastax day 2016 : Cassandra data modeling basicsDatastax day 2016 : Cassandra data modeling basics
Datastax day 2016 : Cassandra data modeling basicsDuyhai Doan
 
Understanding and preventing sql injection attacks
Understanding and preventing sql injection attacksUnderstanding and preventing sql injection attacks
Understanding and preventing sql injection attacksKevin Kline
 
Datastax enterprise presentation
Datastax enterprise presentationDatastax enterprise presentation
Datastax enterprise presentationDuyhai Doan
 
Topic 12: NoSQL in Action
Topic 12: NoSQL in ActionTopic 12: NoSQL in Action
Topic 12: NoSQL in ActionZubair Nabi
 

What's hot (20)

Big data 101 for beginners riga dev days
Big data 101 for beginners riga dev daysBig data 101 for beginners riga dev days
Big data 101 for beginners riga dev days
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applications
 
Adf walkthrough
Adf walkthroughAdf walkthrough
Adf walkthrough
 
Arm yourself with Domain Driven Security. It's time to slay some security trolls
Arm yourself with Domain Driven Security. It's time to slay some security trollsArm yourself with Domain Driven Security. It's time to slay some security trolls
Arm yourself with Domain Driven Security. It's time to slay some security trolls
 
Cassandra nice use cases and worst anti patterns no sql-matters barcelona
Cassandra nice use cases and worst anti patterns no sql-matters barcelonaCassandra nice use cases and worst anti patterns no sql-matters barcelona
Cassandra nice use cases and worst anti patterns no sql-matters barcelona
 
Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...
 
What's new with Apache Spark's Structured Streaming?
What's new with Apache Spark's Structured Streaming?What's new with Apache Spark's Structured Streaming?
What's new with Apache Spark's Structured Streaming?
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Domain Driven Security Jfokus 2016
Domain Driven Security Jfokus 2016Domain Driven Security Jfokus 2016
Domain Driven Security Jfokus 2016
 
Sasi, cassandra on full text search ride
Sasi, cassandra on full text search rideSasi, cassandra on full text search ride
Sasi, cassandra on full text search ride
 
Indexing in Cassandra
Indexing in CassandraIndexing in Cassandra
Indexing in Cassandra
 
Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017
 
EclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL EndgameEclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL Endgame
 
Sql server hybrid what every sql professional should know
Sql server hybrid what every sql professional should knowSql server hybrid what every sql professional should know
Sql server hybrid what every sql professional should know
 
ShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)Sql
 
Datastax day 2016 : Cassandra data modeling basics
Datastax day 2016 : Cassandra data modeling basicsDatastax day 2016 : Cassandra data modeling basics
Datastax day 2016 : Cassandra data modeling basics
 
Understanding and preventing sql injection attacks
Understanding and preventing sql injection attacksUnderstanding and preventing sql injection attacks
Understanding and preventing sql injection attacks
 
Datastax enterprise presentation
Datastax enterprise presentationDatastax enterprise presentation
Datastax enterprise presentation
 
Topic 12: NoSQL in Action
Topic 12: NoSQL in ActionTopic 12: NoSQL in Action
Topic 12: NoSQL in Action
 

Similar to Immutable Database. Safe Way to Migrate Large Data Stores

OrientDB - The 2nd generation of (multi-model) NoSQL
OrientDB - The 2nd generation of  (multi-model) NoSQLOrientDB - The 2nd generation of  (multi-model) NoSQL
OrientDB - The 2nd generation of (multi-model) NoSQLRoberto Franchini
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?ukdpe
 
Designing Structured Streaming Pipelines—How to Architect Things Right
Designing Structured Streaming Pipelines—How to Architect Things RightDesigning Structured Streaming Pipelines—How to Architect Things Right
Designing Structured Streaming Pipelines—How to Architect Things RightDatabricks
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...NoSQLmatters
 
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...boychatmate1
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchEelco Visser
 
PSTL Spark Summit West 2017
PSTL Spark Summit West 2017PSTL Spark Summit West 2017
PSTL Spark Summit West 2017Jack Gudenkauf
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.GeeksLab Odessa
 
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsDiscovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsWee Hyong Tok
 
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...FIAT/IFTA
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDBMongoDB
 
node-crate: node.js and big data
 node-crate: node.js and big data node-crate: node.js and big data
node-crate: node.js and big dataStefan Thies
 
MongoDB at the Silicon Valley iPhone and iPad Developers' Meetup
MongoDB at the Silicon Valley iPhone and iPad Developers' MeetupMongoDB at the Silicon Valley iPhone and iPad Developers' Meetup
MongoDB at the Silicon Valley iPhone and iPad Developers' MeetupMongoDB
 
Going Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21cGoing Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21cJim Czuprynski
 
Indexing & query optimization
Indexing & query optimizationIndexing & query optimization
Indexing & query optimizationJared Rosoff
 
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack GudenkaufStructured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack GudenkaufDatabricks
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBantoinegirbal
 
2011 Mongo FR - MongoDB introduction
2011 Mongo FR - MongoDB introduction2011 Mongo FR - MongoDB introduction
2011 Mongo FR - MongoDB introductionantoinegirbal
 

Similar to Immutable Database. Safe Way to Migrate Large Data Stores (20)

Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
OrientDB - The 2nd generation of (multi-model) NoSQL
OrientDB - The 2nd generation of  (multi-model) NoSQLOrientDB - The 2nd generation of  (multi-model) NoSQL
OrientDB - The 2nd generation of (multi-model) NoSQL
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?
 
Designing Structured Streaming Pipelines—How to Architect Things Right
Designing Structured Streaming Pipelines—How to Architect Things RightDesigning Structured Streaming Pipelines—How to Architect Things Right
Designing Structured Streaming Pipelines—How to Architect Things Right
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
 
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...
Introduction to Mongo DB-open-­‐source, high-­‐performance, document-­‐orient...
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language Workbench
 
PSTL Spark Summit West 2017
PSTL Spark Summit West 2017PSTL Spark Summit West 2017
PSTL Spark Summit West 2017
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
 
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsDiscovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
 
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
 
MCT Virtual Summit 2021
MCT Virtual Summit 2021MCT Virtual Summit 2021
MCT Virtual Summit 2021
 
Managing Social Content with MongoDB
Managing Social Content with MongoDBManaging Social Content with MongoDB
Managing Social Content with MongoDB
 
node-crate: node.js and big data
 node-crate: node.js and big data node-crate: node.js and big data
node-crate: node.js and big data
 
MongoDB at the Silicon Valley iPhone and iPad Developers' Meetup
MongoDB at the Silicon Valley iPhone and iPad Developers' MeetupMongoDB at the Silicon Valley iPhone and iPad Developers' Meetup
MongoDB at the Silicon Valley iPhone and iPad Developers' Meetup
 
Going Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21cGoing Native: Leveraging the New JSON Native Datatype in Oracle 21c
Going Native: Leveraging the New JSON Native Datatype in Oracle 21c
 
Indexing & query optimization
Indexing & query optimizationIndexing & query optimization
Indexing & query optimization
 
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack GudenkaufStructured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
2011 Mongo FR - MongoDB introduction
2011 Mongo FR - MongoDB introduction2011 Mongo FR - MongoDB introduction
2011 Mongo FR - MongoDB introduction
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Immutable Database. Safe Way to Migrate Large Data Stores

Editor's Notes

  1. 2 DBA Проверяет бекапы
  2. 2 года назад Команды Фичи Демо Заинтересованные лица ...
  3. Овации Фичи Схема данных Еластиксерч Основая БД Кто использует? Не логи! Бессхемная Массовое обновление По домам Утро рано ...
  4. Сирены Жалобы Эквалайзер Ресурсы 100% Фейл ~2000 Неанализируемые Начинаем спасать ...
  5. Откат фич Испорченная схема Чуковский Картина маслом ...
  6. Безопасный способ Мелкие изменения Коллега Автоматизация инфраструктуры Новый кластер Заводи машину На коленке Запускаем миграцию А дальше ...
  7. 23 часа 1.5 млрд Старая схема 0 Downtme ..
  8. Прекращение жалоб Репутация компании Повезло Способ миграции Прежде знакомство ...
  9. 3 континента Фриланс, аутсорс ... Совмещаю архитектор Опен-соурс Легко найти Познакомимся с компанией ...
  10. Киев Свой продукт Основной продукт ...
  11. Сервис мониторинга Глубокая аналитика Соцмедиа B2B SAAS Основные клиенты Юскан ...
  12. Международные бренды Большие банки Медиа агенства Как это работает ...
  13. Ключевые слова Краулинг Текстовый фильтр Обогащение Тональность Классификация Объекты Картинки Попадают в тему ПУП ...
  14. Поиск Разметка Чистка Другие действия Конечная цель ...
  15. Аналитика 100 разрезов Фильтры Аггрегации Под капотом ...
  16. Маленький Эластик Клиентские Данные Источник правды Мгновеннная Аналитика Основная БД Репликация Архитектура данных ...
  17. Тема = Индекс Изоляция Вариативность размера Схема данных ...
  18. 1 тип 120 полей Индексированные Снежинка Realtime OLAP Хватит контекста Цель
  19. 4 года Бурное Развитие Несмотря на Возраст Экстремальная Итеративность Чистота Схемы Цель Рассказать Уникальном Способе Расширять Функциональность Чистоте и Порядок Применить у Себя Вернемся Назад Ситуация Расширение схемы Смена Анализатора
  20. Что есть Анализатор = Изменить Тип Какой фикс? Разработчики Эластика Ре-индексация ...
  21. Новый Термин Давайте Разберемся ...
  22. Новая Схема (Клик) Копирование Синхронизация Переключаем клиентов Встроенная Фича 2.3 Сделай Сам ...
  23. С Чего Начать? С Конца Переключение Клиентов ...
  24. Встроенные Псевдонимы Облом ...
  25. Topic ID = Index ID Подумаешь ...
  26. Осталось Заюзать ...
  27. Найти Вызовы
  28. Обернуть Боже Храни JetBrains
  29. Умеем Переключать V1 – V2 Тривиально …
  30. Сортировка Порядок Уникальный Номер Батчи Чекпоинты Прогресс Партишен Диапазона Макс Параллелизм ...
  31. Есть Проблема Пока Копируем Краулеры Пользователи Конец Копирования Потеря Изменений УПС Что делать? Кстати, Reindex API 1-й вариант ...
  32. По-быстренькому Зал: Кто так делает? 3 Вещи Инцидентов Контроллер Рейда Предугадывать Сколько Даунатйма? ...
  33. Контракты Размер Индекса Нехитрая Математика Короче Не Вариант Лучше Не Придумали ..
  34. Вопрос: Event Sourcing? Продается с CQRS Видео Грега Янга Если Вкратце ...
  35. Упрощенно Изменение = Ивент Проектор Журнал Возврат Управления Запрос Неклассический ..
  36. С Начала Времен Нормальный Режим На Лету Коротко Остановиться на ...
  37. Откуда Берутся Что Представляют
  38. Волюнтарный Доступ Первое Что Сделали ...
  39. Прикрыли Лавочку АПИ Команды Обработчики Ивент Доступ На Чтение Через Обертку С Ивентами Разобрались ...
  40. Журнал Сторедж Ивентов Конфликт Параллельного Доступа Любой Сторедж Кафка Стримстоун Последний Ингридиент ...
  41. Требования Удаленное Управление Автовосстановление Высокая Доступность Многопоточность Идеальный Кандидат Модель Актеров Фреймворк Распределенных Систем Спасибо Orleans Есть Все Ингридиенты Осталось Реализовать Протокол ...
  42. Упростить Жизнь Машина Состояний Нет в Орлинс Орлянка Итак Протокол ...
  43. Переходим к Копированию ...
  44. Дошли до Конца Переходим к Проигрыванию ...
  45. Пороговое Значение Идем на Переключение ...
  46. Сам Себе Донакатка Важность Пороговое Значение Дальше ...
  47. 100% Синхронизация Обновление Алиаса И Наконец ...
  48. Переход В Обычный Режим Читатели Новый Индекс Запись Остановлена Точка Не Возвращения Круто но ...
  49. Как-то Управлять Мониторить Прогресс Перезапускать и Прочее Лоу-Фай Решение ...
  50. Консоль Оператора Селективный Запуск Управление Статус и т.п. Один из Коллег 2-й Монитор Ностальгирует По Временам ...
  51. Ок. Повеселились. Едем Дальше ...
  52. Стейджинг FAST = FIRE Кластер Бедненький Экономия Ресурсов SLOW = WEEK Печаль ...
  53. Scale OUT Scale IN Можно Ночью Скейлить Все Хотят Cпать Чего Паримся ...
  54. Мы Же в Облаке 10х Быстрее Нагрузка на Исходный Завршение Миграции Удалить Старый 1 Команда Остается Добавить...
  55. Всего 1 Столбик Код Синглтона 0 Изменений Дело в Шляпе Ой Как Удачно ...
  56. Уже Догадались Я на Хакатоне Мое Лицо Звезды Сошлись Встроенные Псевдонимы Никак Реиндекс АПИ Никак Бог ЕСТЬ! Остались 2 Вопроса Безопасная Миграция Начнем с Миграции
  57. Миграция Трансформация Каждого Документа Значение По Умолчанию Сплит Полное Имя В Первом Случае ...
  58. Вчера Не Индексировали Пришел Яндекс Контракт Завели Миграцию Выцарапали Бизнес-Кейс Обогащение Реализация Очень Простая ...
  59. Проецирование Версия Индекса Используем при Копировании 2-й Тип Трансформации ...
  60. Локализация Гео Сегодня Интернейшенл Бизнес-кейс 2 Подхода к Реализации Первый ...
  61. Прогрессивное Изменение Бэклог 2x Текст Второй Подход ...
  62. Ветвление Кода Наш Способ Знание о Версии Какой Подход Выбирать По Ситуации В Любом Случае Придется Менять Код Клиента Окей С Трансформациями Разобрались ...
  63. Последний, Вопрос Безопасная Миграция! Для Меня Безопасная Факап Откат Никто Не Заметит Вернемся к Финалу ...
  64. Переключили Работают с Новым Факап Невозможно Откат (Клик) Нет Синхронизации Беда Почему Так Вернемся к Протоколу ...
  65. После Переключения Нормальный Режим Журнал Отключен Точка не Возвращения Так Вот ...
  66. Не Весь Протокол Оставил На Десерт ВНИМАНИЕ Жырная Инженерная Тема Расширяем Протокол ...
  67. Дополнительная Ветка После Переключения Продолжаем Журнал Но Теперь Накатываем Все 100% Ок Как и Раньше Если Факап Логи Звонки От Клиентов Делаем Обратное Переключение ..
  68. Пауза Записи Опять Догоняем Но Теперь Старый Индекс И Как Только ..
  69. 100% Синхронизация Обновяем Алиас На Старый Индекс И Переключаемся ..
  70. Обычный Режим Работаем со Старым Что в Результате ...
  71. Параллельная Реальность 1 БД 2 Разные Схемы Переключится В Любое Время Без Потери Изменений Абсолютно Незаметно ...
  72. Тада Не Знаю Ни Одного Способа Возможность Отката Едем Дальше ...
  73. Технический Протокол Для Индекса Воркфлоу Миграции Как Реализован У Нас Новый Индекс Новая Версия Канарейки 735 Время Проба Фейл Откат Иначе Все Оставшиеся Уудаляем Старый Кластер Пьем Пиво
  74. Красота! Теперь Самое Время Ложка Дегтя ... Сложности И Другие Приключения Естественно Все Проблемы ...
  75. Распределеных Систем Майк Амундсен Микросервисы Таймауты Задержки Пропускная Способность Другие Прелести CAP Теорема Не Обмануть Начнем с Простого Несогласованнось Курсора Отсутствие Распределенных Транзакций Лечится ...
  76. Простите за Каламбур Пат Хелланд Идемпотентность Состояние Здоровья Повторное Выполнение 2-я Основная Проблема ...
  77. Восстановление Сбой Рестарты Обработка Ошибок Ретраи Предохранители Ложись Спать Вали Миграцию Обычный Режим Ну и Последнее ...
  78. Доступность Системы Продукт Доступности Компонентов Каждый Компонент Потенциально Точка Отказа Тейбл Сторедж Приложение Без Миграции Ляжет Хватит про Трудности …
  79. Пора Закругляться Выводы Итак Что Получилось У Нас В Результате ...
  80. Решали Проблему Реиндексации Внедрили Неизменяемая БД Маскимальная Эффективность Расширили Вся Инфраструктруа Голубая Мечту ДевОпс Сервера Без Состояния Применив к БД Подытоживая С технический Стороны ...
  81. Хранилищам Любого РазмераВ Все или Ничего Сбой Инфраструктуры Контрольная Точка Ошибки Разработчиков Легкий Откат Увеличение Эффективности Новая Инфраструктура Со стороны приложения ...
  82. Использование Принципа Дает Ничего Более Стабильного Протестировать Изменения Откат в Любой Момент Без Остановки Обслуживания Нон-Стоп, Онлайн Итеративный Процесс Рефакторинг БД Инструмент Рефакторинга Возможность Эволюции Содзание Модификация Функциональности Необходимое Условие Развития ПО Это Реально Круто! Конференция Инжерных Практик ...
  83. В Первую Очередь Практика CD Постоянный Деплой Полноценная Реализация Канарейка Вся Вертикаль Не Только Траффик Новомодной SRE Гибкость Изменения Схемы Итеративные Процессы Вывод ...
  84. Рабочий Способ Проверенный в Боях 9 Раз Общий MongoDb/SQL Не Ракетостроение Применить в Своих Проектах