Object identifiers

Each object (i.e. usually dark matter halo or particle) in our database tables has got a unique identifier. This usually is just a long integer which can be considered as the “name” of the object, by which it is uniquely identified. Such identifiers are important in order to facilitate data retrievable (e.g. when joining tables) and to enable performance tuning with database table indicies later on.

The first approach could be to number the objects in a table by auto-incrementing the index for each new record. However, we constructed the object identifiers based on additional properties like the snapshot number to which the halo belongs or by including information from merger trees. In this way, certain types of queries are easier to construct and can even be accelerated. The figure below illustrates the usefulness of constructed unique identifiers.

Object identifiers

Object identifiers: A collection of objects, unsorted (left) and the same objects sorted by their identifiers (right), which contains information about two properties: the object’s color (first digit) and its size (last digit).

When choosing identifiers based on multiple properties of the objects (like color and size), one can clearly gain some advantage.

We give the prescription for constructing the object identifiers for each table in our database in the overview of database tables for each simulation, e.g. MDR1 tables.