[ovs-dev] strong empheral references?

Marcelo E. Magallon marcelo.magallon at hpe.com
Mon Dec 19 15:15:54 UTC 2016


On Thu, Dec 15, 2016 at 03:14:47PM -0800, Ben Pfaff wrote:

> This was implemented because it led to databases that couldn't be read
> from disk upon restart.  The code comment gives more of the story:
> 
> +    if (ovsdb_base_type_is_strong_ref(base) && !refTable->is_root) {
> +        /* We cannot allow a strong reference to a non-root table to be
> +         * ephemeral: if it is the only reference to a row, then replaying the
> +         * database log from disk will cause the referenced row to be deleted,
> +         * even though it did exist in memory.  If there are references to that
> +         * row later in the log (to modify it, to delete it, or just to point
> +         * to it), then this will yield a transaction error. */
> +        column->persistent = true;
> +    }

Aha...

Thanks Ben!

Marcelo


More information about the dev mailing list