SlideShare a Scribd company logo
Database compatibility(i.e. Application talking to a DB)Select statementApp. is reader, DB is writerInsertApp. is writer, DB is readerCompany Confidential - Wealthfront Inc.
DB: Rules of EngagementAdding a table: ✔Removing a table: ✔Table is unusedRemoving a column: ✔Column is unusedAdding a column: ✔NullableORNot-null with default valueRenaming a column: ✖Company Confidential - Wealthfront Inc.
DB: DogfightingTable users with two columns id and valueValue is a percentage, stored as [0, 100]Migrate to [0, 1] representationClustered servers talking to the DBNo downtimeCompany Confidential - Wealthfront Inc.
DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & valueWrites [0, 100] in valuecreate table users (  id int not null,  value int not null);
DB: DogfightingCompany Confidential - Wealthfront Inc.alter table users  modify value int,  add value_dec decimal;
DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & valueWrites [0, 100] in valueWrites [0, 1] in value_dec
DB: DogfightingCompany Confidential - Wealthfront Inc.update users set value_dec = value / 100 where value_dec is null;
DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & value_decWrites [0, 1] in value_dec
DB: DogfightingCompany Confidential - Wealthfront Inc.alter table users  drop column value,  modify value_dec decimal not null;
DB: Top GunTable users with two columns id and valueValue is a percentage, stored as [0, 100]Migrate to [0, 1] representationClustered servers talking to the DBNo downtimeNo DDL change (value is decimal)Company Confidential - Wealthfront Inc.NEW

More Related Content

PPTX
2. react - native: basic
PDF
Continuous Deployment: The Dirty Details
PDF
Zero downtime deploys for Rails apps
PPTX
Fungus on White Bread
ODP
Continuous deployment-at-flipkart
PPTX
Continuous delivery for databases
PDF
Continuous Deployment at Etsy: A Tale of Two Approaches
KEY
How Flipkart scales PHP
2. react - native: basic
Continuous Deployment: The Dirty Details
Zero downtime deploys for Rails apps
Fungus on White Bread
Continuous deployment-at-flipkart
Continuous delivery for databases
Continuous Deployment at Etsy: A Tale of Two Approaches
How Flipkart scales PHP

More from Pascal-Louis Perez (14)

PDF
Fuchsia RFCs
PDF
Products’ Love Story with Biz
PDF
How to Send a Receipt, Topics in Concurrency and Distributed Systems
PDF
Corporate Finance Primer
PDF
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
PPTX
SLL Conf - Continuous Deployment
PDF
Alchemist Startup Primer - Lean Development Practices
PPTX
Applying Compiler Techniques to Iterate At Blazing Speed
PPTX
Iterate Like a Whirling Dervish
PDF
Extreme Testing at kaChing
PDF
Type Checking JavaScript
PPT
Xignite's Dedicate kaChing Api
PPT
Add (Syntactic) Sugar To Your Java
PPT
kaChing's API garage event
Fuchsia RFCs
Products’ Love Story with Biz
How to Send a Receipt, Topics in Concurrency and Distributed Systems
Corporate Finance Primer
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
SLL Conf - Continuous Deployment
Alchemist Startup Primer - Lean Development Practices
Applying Compiler Techniques to Iterate At Blazing Speed
Iterate Like a Whirling Dervish
Extreme Testing at kaChing
Type Checking JavaScript
Xignite's Dedicate kaChing Api
Add (Syntactic) Sugar To Your Java
kaChing's API garage event
Ad

Recently uploaded (20)

PDF
A comparative analysis of optical character recognition models for extracting...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Unlocking AI with Model Context Protocol (MCP)
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
cuic standard and advanced reporting.pdf
A comparative analysis of optical character recognition models for extracting...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MIND Revenue Release Quarter 2 2025 Press Release
Programs and apps: productivity, graphics, security and other tools
NewMind AI Weekly Chronicles - August'25-Week II
“AI and Expert System Decision Support & Business Intelligence Systems”
Unlocking AI with Model Context Protocol (MCP)
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
cuic standard and advanced reporting.pdf
Ad

Database compatibility

  • 1. Database compatibility(i.e. Application talking to a DB)Select statementApp. is reader, DB is writerInsertApp. is writer, DB is readerCompany Confidential - Wealthfront Inc.
  • 2. DB: Rules of EngagementAdding a table: ✔Removing a table: ✔Table is unusedRemoving a column: ✔Column is unusedAdding a column: ✔NullableORNot-null with default valueRenaming a column: ✖Company Confidential - Wealthfront Inc.
  • 3. DB: DogfightingTable users with two columns id and valueValue is a percentage, stored as [0, 100]Migrate to [0, 1] representationClustered servers talking to the DBNo downtimeCompany Confidential - Wealthfront Inc.
  • 4. DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & valueWrites [0, 100] in valuecreate table users ( id int not null, value int not null);
  • 5. DB: DogfightingCompany Confidential - Wealthfront Inc.alter table users modify value int, add value_dec decimal;
  • 6. DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & valueWrites [0, 100] in valueWrites [0, 1] in value_dec
  • 7. DB: DogfightingCompany Confidential - Wealthfront Inc.update users set value_dec = value / 100 where value_dec is null;
  • 8. DB: DogfightingCompany Confidential - Wealthfront Inc.Reads id & value_decWrites [0, 1] in value_dec
  • 9. DB: DogfightingCompany Confidential - Wealthfront Inc.alter table users drop column value, modify value_dec decimal not null;
  • 10. DB: Top GunTable users with two columns id and valueValue is a percentage, stored as [0, 100]Migrate to [0, 1] representationClustered servers talking to the DBNo downtimeNo DDL change (value is decimal)Company Confidential - Wealthfront Inc.NEW

Editor's Notes

  • #5: Highlight double write
  • #6: Highlight double write
  • #7: Highlight double write
  • #8: Highlight double write
  • #9: Highlight double write
  • #10: Highlight double write
  • #11: Highlight migration of previous one was 4 steps, this one much more steps