Everett: Providing Branch-Isolation for a Data Evolution Service

One benefit of Software-as-a-Service (SaaS) is the ability to rapidly deploy iterative improvements without requiring users to upgrade the application on their machine. However, the need to rapidly "develop and test" different versions of an application implies that developers need branch isolation to protect the system from local changes to both data and meta-data in the same way that they traditionally use branch-isolation to protect the system from source-code changes.

Providing branch-isolation for source-code changes has well-known solutions, but these solutions do not extend well to providing isolation for changes to data and meta-data. EVERETT provides developers the ability to safely -- and concurrently -- change database values with new business logic or evolve data schema in various ways while sharing the same database. This paper discusses how EVERERTT provides transparent branch isolation for a data-evolution service, the algorithmic and data-structure trade-offs that we examined, and evaluates the success of our approach.

By: Avraham Leff; James T. Rayfield

Published in: RC24934 in 2010


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to reports@us.ibm.com .