Automatic Schema Evolution(continued)
To achieve this, we have modified the ROOT disk format by splitting the whole task of writing into numerous, but simple ''atomic'' subtasks.
- Each object is written separately. All its members are written close to each other;
- Pointers to object are not followed immediately. Writing of these objects is delayed. This allows to skip unknown or unneeded object;
- Member which is a C++ class is written as a separate object;
- Streamer of an object is splited by "atomic" actions. An action is applied to one member. Each action described by:
- Numeric code related to the kind of action. For example:
- Member of fundamental type;
- Pointer to fundamental type;
- C++ object;
- Pointer to C++ object.
- Etc...