Lightweight Identifier

Last modified 27 Oct 2021 10:53 +02:00

Lightweight identifier is a "reasonable unique" identifier that is very cheap to create. While objects have OID, creating a unique OID means communication with the repository. This quite expensive and therefore it is unsuitable for more purposes, such as creating identifiers for tasks or audit records. Lightweight identifiers are used instead.


Lightweight identifiers are unique in the midPoint "system". That usually means a machine if midPoint is a single-machine installation. In a multi-node installation the identifier is unique in the entire cluster. It is not guaranteed that the identifier is globally unique or that it is transferable to other installations.


Lightweight identifiers are mostly used to identify short-lived objects in midPoint, such as (transient) tasks and audit events.


Current implementation of Lightweight identifier generator is combining current system time, host identifier and sequence number. The sequence number is used to support uniqueness in case that more than one identifier is requested in a specific time quantum. The sequence is not coordinated across midPoint nodes, each node maintains its own sequence number. Uniqueness is provided by inclusion of the host identifier. The sequence is reset in every time quantum.

Lightweight identifier may be the same as OID for persistent objects (e.g. persistent tasks).