-1

From this paper, https://people.cs.umass.edu/~mcorner/courses/691M/papers/terry.pdf It is mentioned that Bayou used some kinds of Version control to manage and keep tracks using the dependency check and merge procedure. However, it seems to be oddly similar to most modern VCS like Git, but can anyone point the the difference?

  • IMO a major difference is that in git all the conflict resolution and merging various versions are always explicit actions, usually interactive. While many merges can be automated (the ones without conflicts), the default assumption is that a user is available to aid in conflict resolution. That's not a viable model for a real distributed DB, where all conflict resolution must be automatic. – Joachim Sauer May 25 '21 at 07:38

1 Answers1

2

From what I can see, bayou is a replicated storage system providing weakly consistent guarantees designed for mobile computing environments.

It has no notion of history, branch, commits, diff, rebase that Git provides.

Its dependency check is there to manage merge conflicts when achieving its eventual consistent state between nodes.
See "Managing Update Conflicts in Bayou" from Peter Bailis: it does not use a Merkle Tree like Git does to track common ancestor and do a three-way merge.
Bayou "mergeproc", its merge function, is more about "reconciliation", which can take different form depending on the program using Bayou.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • It sounds to me that a closer relative to Bayou in the modern environment would be something like CouchDB: a DB with eventual consistency and solid support for "disconnected" operation. – Joachim Sauer May 25 '21 at 07:36
  • @JoachimSauer Yes, except the Bayou "reconciliation" phase can vary in its resolution. – VonC May 25 '21 at 07:38
  • I don't claim that I've gone into any depth in Bayou (or CouchDB for that matter), I just looked at the overall goal and high-level description of operation. I'm sure plenty of details are different. Bayou just seemed more closely related to something like CouchDB than to git. – Joachim Sauer May 25 '21 at 07:39