CEDA Presentation 2007

prev | next

Slide 18 : Schema Evolution

Ceda2 provides an elegant syntax for defining data models, with support for schema evolution.

The following example shows a data model for a simple Point data structure. In the original schema this only contained x and y coordinates. Subsequently a z coordinate was added, but it was then removed. Finally x,y were dropped in favor of r,theta. Hence there are four different schema for this data model.

In memory as well as on disk, instances of this data structure are stored in a compact binary form, and therefore only take up 16 or 24 bytes depending on the schema.

The CEDA framework automatically generates code that can deserialise Point instances for all possible schema. This allows the database to update schema lazily (ie on demand). The $evolve section provides the code used to evolve the schema from an (x,y) representation to (r,theta).