Open git-ram opened 3 years ago
@lkuper Our first draft is ready for review.
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.
@lkuper made some changes to all 4 questions; a corrected draft is now up on the wiki.
@lakshmikrish-97 @hmadkhali @ap9272 @cluelessbasu @meghnaburli @esmaeil-mirvakili @andavid0