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 reachability and early failure of OpenStack commands.
- A periodic thread updates the reachability of EFA in the Neutron database.
This periodic thread runs every 150 seconds, by default, and it is user
configurable via the
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.
- EFA errors are classified as non-retriable and retriable, based on the error code. If the errors are non-retriable, the journal entries are marked as FAILED immediately, without retrying. Currently, except for the connectivity and authorization issue, all other EFA errors are considered as non-retriable.
- If the parent entry moves to FAILED state, then all the dependent entries will also be marked as FAILED there by avoiding unnecessary processing.
- Dependencies for a new journal entry are created at the time of recording with the pending and processing entries in the journal. While a journal entry is being processed, if the parent entry failed, the child entry is made to fail immediately, without trying to process.
For more information, see https://docs.openstack.org/networking-odl/latest/contributor/drivers_architecture.html.
- efa-journal list
- efa-journal reset
- efa-journal clear