Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[RELENG '15] Continuous Deployment & Schema Evolution in SQL Databases

[RELENG '15] Continuous Deployment & Schema Evolution in SQL Databases

Slides from my RelEng '15 presentation on early progress made with the QuantumDB proof of concept to manage and orchestrate schema evolution in a zero-downtime fashion.

Michael de Jong

May 19, 2015
Tweet

More Decks by Michael de Jong

Other Decks in Research

Transcript

  1. My long-time interest: How do you deploy a new version

    of a web service without downtime?
  2. Reason 1: DDL statements Statements which change the structure of

    the database (tables, columns, indices, foreign keys, etc)
  3. SELECT * FROM rentals WHERE customer_id = 2372 AND return_date

    < NOW() AND returned = false; SELECT * FROM rentals* WHERE customer_id = 2372 AND return_date < NOW() AND returned = false; Accessing the database
  4. #1 Blocking DDL statements Avoids using blocking DDL statements, since

    all affected tables are recreated from scratch.
  5. Supported Operations SUPPORTED ADD COLUMN ALTER COLUMN DROP COLUMN CREATE

    TABLE COPY TABLE RENAME TABLE DROP TABLE ADD FOREIGN KEY DROP FOREIGN KEY NOT YET SUPPORTED CREATE INDEX DROP INDEX ADD CHECK CONSTRAINT DROP CHECK CONSTRAINT DECOMPOSE TABLE * JOIN TABLE * MERGE TABLE * PARTITION TABLE * * Update Rewriting and Integrity Constraint Maintenance in a Schema Evolution Support System: PRISM++, C. A. Curino et al. (2010)
  6. I/O Limitations Copying data is limited by disk I/O. We

    could actively throttle this based on some metric.
  7. Novelty • Support complex schema changes on multiple tables. •

    Maintain referential integrity. • Multiple database schemas can be used in parallel.