The journal maintains a list of operations that occurred on Neutron and should be mirrored to the controller.
The journal entry is recorded in the pre-commit phase (when applicable) so that when a commit failure occurs, the journal entry and the original operation are deleted.
The journal is processed mainly by a journaling thread that runs periodically and checks whether the journal table has any entries that need to be processed. The thread is triggered in the post-commit phase of the operation (when applicable).
Take create network as an example. After it is stored in the Neutron DB by the ML2 plugin, the EFA mechanism driver stores a journal entry representing that operation and triggers the journaling thread to take care of the entry.
NoteJournaling is available for the ML2 plugin and Layer 3 plugin.
efa_status_intervalfield in the ml2_extreme_conf file. If EFA reachability is down, then the driver does not queue the operations into the journal and the corresponding operation is returned as failed.
For more information, see https://docs.openstack.org/networking-odl/latest/contributor/drivers_architecture.html.