A transaction_id
is a unique identifier that
identifies the present or past transaction.
A transaction is made up of one or more sub-transactions.
A transaction has one role
for the entire lifetime,
but the transaction can different values of status
as the transaction is processed.
For example, if the user "Installed OpenOffice" and the backend has to:
update libxml2 as a dependency
install java as dependency
install openoffice-bin
install openoffice-clipart
This is one single transaction with the role install
,
with 4 different sub-transactions.
The transaction_id
must be of the format
/job_identifier_data
where the daemon controls
all parameters.
job
is a monotonically updating number and is
retained over reboots.
identifier
is random data used by the daemon to
ensure jobs started in parallel cannot race, and also to make a
malicious client program harder to write.
data
can be used for ref-counting in the backend or
for any other purpose.
It is designed to make the life of a backend writer a little bit easier.
An example transaction_id
would be
/45_dafeca_checkpoint32