jerdfelt / muscle Goto Github PK
View Code? Open in Web Editor NEWExperimental database migration library
Experimental database migration library
This is a proof of concept module to implement an "expand" and "contract" method of database migrations. There are two main sources of downtime when using traditional migration (such as sqlalchemy-migrate or alembic): 1) ALTER TABLE can and often will take a lock on the table for the duration of the operation, which can be long depending on the row count 2) The length of time it takes to migrate the data after the schema change is done can be long. Such as moving data to new tables, etc Also, to a lesser extent, the length of time code needs to be stopped can cause extra downtime. This is necessary because the old code can only use the old schema and the new code can only use the new schema. This software tackles the latter problem of the length of time it takes to migrate the data, not the downtime from the schema change (see below for possible solutions). It tackles the problem by splitting the process into an "expand" phase which adds new columns (never modifying existing columns) and then a "contract" phase which removes unused columns. In between the "expand" and "contract", as software reads data from the database, the data is migrated to the new columns/tables that have been added. ALTER TABLE downtime -------------------- ALTER TABLE will often cause locks to be obtained for the duration of the operation. This can happen even when adding a new column with InnoDB. This is a potential source of downtime as the database updates all rows with the write lock held. Possible solutions: https://www.facebook.com/notes/mysql-at-facebook/online-schema-change-for-mysql/430801045932 http://code.google.com/p/openarkkit/ https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html Upgrade to MySQL 5.6, which appears to have better code to handle online schema changes with minimal downtime
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.