Journaling

The V2 driver is set to tackle problems encountered in the V1 driver while maintaining feature parity. The major design concept of the V2 driver is journaling. Instead of passing the calls directly to the EFA, they get registered in the journal table which keeps a sort of queue of the various operations that occurred on Neutron and must be mirrored to the controller.

The journal is processed mainly by a journaling thread which runs periodically and checks if the journal table has any entries in need of processing. Additionally, the thread is triggered in the postcommit hook of the operation (where applicable).

For example, in case of create network again, after it gets 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.

The journal entry is recorded in the pre-commit phase (whenever applicable) so that in case of a commit failure the journal entry gets aborted along with the original operation, and there‘s nothing extra needed.

Refer to https://docs.openstack.org/networking-odl/latest/contributor/drivers_architecture.html.

Note

Note

Journaling is available to ML2 and Layer3.