lkuper / CSE232-2020-10

A graduate course on distributed systems
https://decomposition.al/CSE232-2020-10/
11 stars 1 forks source link

12/2 Discussion: Paxos Made Live - An Engineering Perspective (2006 Invited Talk) #22

Open git-ram opened 3 years ago

git-ram commented 3 years ago

@lakshmikrish-97 @hmadkhali @ap9272 @cluelessbasu @meghnaburli @esmaeil-mirvakili @andavid0

meghnaburli commented 3 years ago

@lkuper Our first draft is ready for review.

lkuper commented 3 years ago

Some feedback:

Q1: looks OK.

Q2: I think this is OK, although

Once the master gets disconnected, then a new master is selected, which keeps the sequence number fixed until the old master comes back online

is slightly confusing. AFAIK, the new master does have to pick a higher sequence number than the old master. It's just that boosting helps prevent the old master from coming back and butting in with an even higher one.

Q3: I think you have the right basic idea, but the writing looks a bit sloppy and there's some redundancy that I think you can fix.

Consequent reads should return the same value, until the next write

Was this an incomplete sentence? In any case, I think you can remove it.

However, we must take care of the fact that Paxos does not handle byzantine faults, which comprise one of the largest classes of faults.

I'm not sure what "take care of" means here. Maybe just say "consider"? Also, "one of the largest classes of faults" is not really relevant. Certainly omission faults and crash faults are a subset of the Byzantine fault class, as we've discussed, but Paxos makes a point of tolerating those faults, up to a point.

Q4: Looks pretty good, although I'm not quite sure what "Could lose out on possible optimizations for a specific application which were abstracted away by the compiler." means. If anything, a DSL might open up more optimization opportunities because the compiler can make more assumptions about what the programmer is trying to do. However, I'd probably also mention something about the larger trusted computing base if you choose to implement your own compiler.

cluelessbasu commented 3 years ago

@lkuper made some changes to all 4 questions; a corrected draft is now up on the wiki.