New ODB File Format

Here are some observations about the new ODB file format.

New Object Ids strategy

Till ODB file format 4, objects of a specific class are linked using prev/next object position. This creates a strong dependency between objects without need. Instead of this Linked list, we extend the concept of IdsBlock( Block Of Ids) to class. Each class will have blocks of ids for its objects. In file format release 4, Block of Ids contained all the ids, no matter of their types(classes and objects).

Now, a block of ids is specific of a class: so it only contains ids of objects of this specific class. Each class has its own object counter. But the oid (Class OID) will have the class id embedded in it. The class OID has 2 attributes:

  • a class id and
  • the internal object id.

The internal object id will never be exposed. When exposed, it will be as an instance of OID that contains the class id.
OIds (Object ids and class Ids) could use HexaDecimal to allow a bigger number wasting less space.

Block of position pointer: a block that contains positions(long) to other blocks: blocks of ids

Block of ID: a block that contain object id definition:
Each element of the block contains:

  • The id
  • The position

*The status (active,deleted,…)

Much Better format
labi (guest) 1271152362|%e %b %Y, %H:%M %Z|agohover

The composite structure of the oid is definitely better for the advantages you mentioned. Definitely sounds like the right direction.

Reply  |  Options
Unfold Much Better format by labi (guest), 1271152362|%e %b %Y, %H:%M %Z|agohover
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License