Subject: [Idr] BGP's consistency model

From: Shane Amante <[email-masked]>
Date: Sun, 24 Jun 2012 13:19:33 -0600

In light of the work to, hopefully, define a good, all-encompassing 'error-handling solution', I think it may be useful to take a step back (or, up) and potentially consider that, ultimately, BGP is a protocol for synchronization of distributed databases across a collection of routers.  Perhaps a question to be asked is: what type of consistency model does BGP have?  Or, can it even be neatly classified as such?

https://en.wikipedia.org/wiki/Consistency_(database_systems)

Perhaps once this is or other more appropriate fundamental aspects are better understood, we can then begin to have a discussion around what are the "classes" and/or spectrum of solutions that could/should "naturally" address the error handling case(s).

-shane

---

From: t.petch <[email-masked]>
Date: Tue, 26 Jun 2012 16:35:34 +0100

----- Original Message -----
From: "Shane Amante" <[email-masked]>
To: <[email-masked]>
Sent: Sunday, June 24, 2012 8:19 PM

> In light of the work to, hopefully, define a good, all-encompassing
'error-handling solution', I think it may be useful to take a step back
(or, up) and potentially consider that, ultimately, BGP is a protocol
for synchronization of distributed databases across a collection of
routers.  Perhaps a question to be asked is: what type of consistency
model does BGP have?  Or, can it even be neatly classified as such?
> https://en.wikipedia.org/wiki/Consistency_(database_systems)

following which link me tells me that
"Wikipedia does not have an article with this exact name"
which is probably a very good reference, but at the moment it is too
subtle for me:-(

Tom Petch

>
> Perhaps once this is or other more appropriate fundamental aspects are
better understood, we can then begin to have a discussion around what
are the "classes" and/or spectrum of solutions that could/should
"naturally" address the error handling case(s).
>
> -shane
> _______________________________________________
> Idr mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/idr
>

---

From: Brian Dickson <[email-masked]>
Date: Tue, 26 Jun 2012 13:55:01 -0400

On Sun, Jun 24, 2012 at 3:19 PM, Shane Amante <[email-masked]> wrote:

> (or, up) and potentially consider that, ultimately, BGP is a protocol for
> synchronization of distributed databases across a collection of routers.
>  Perhaps a question to be asked is: what type of consistency model does BGP
> have?  Or, can it even be neatly classified as such?
>
IMHO, the following characteristics apply:

   1. The "cell" (i.e. granularity on which synchronization needs to
   operate) is the NLRI (aka "prefix/length" as primary key)
   2. The "data" aren't universal, but rather behave much like rays of
   light in a 3D CGI model
   3. The results require deterministic behavior, so it needs to be at
   least "sequential", or perhaps as strong as "serializable". Indeed, within
   a given BGP process, it should be treated as SS2PL (strong sequential
   2-phase locking). Only correct processing of updates (without error
   conditions being reached) should result in change-of-state, which then
   atomically happens with possible propagation to appropriate neighbors.

Since each NLRI is effectively orthogonal, parallel processing at the NLRI
level of granularity could be done - but all RIB-IN instances need to be
available for each parallel node (if there are multiple "processors" doing
update handling).

At a given instant in time, system-wide it might appear like "causal"
consistency - but it needs to be seen as a flaw in the current BGP design,
rather than truly a feature. System-wide, convergence (if/when it happens)
to steady-state delivers "serialize" consistency.

Brian

> better understood, we can then begin to have a discussion around what are
> the "classes" and/or spectrum of solutions that could/should "naturally"
> address the error handling case(s).
>
> -shane