Solving Consensus in True Partial Synchrony

The notion of partial synchrony has been introduced to circumvent the FLP impossibility result for solvability of consensus in fault tolerant distributed systems. This notion helps us to evaluate the efficiency of algorithms that needs to solve consensus in the given time interval <inline-formula><tex-math notation="LaTeX">$ T[\tau _{1} \leq T_{S} \leq \tau _{2}]$</tex-math><alternatives><mml:math><mml:mrow><mml:mi>T</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi>τ</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>≤</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:msub><mml:mi>τ</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="srinivasan-ieq1-3156925.gif"/></alternatives></inline-formula> where <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq2-3156925.gif"/></alternatives></inline-formula> is the stable time when the system becomes synchronous after a transient period of asynchrony. It has been shown that consensus can be solved in constant time after system enters <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq3-3156925.gif"/></alternatives></inline-formula> with an upper bound of <inline-formula><tex-math notation="LaTeX">$ T_{S}+17\delta$</tex-math><alternatives><mml:math><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>17</mml:mn><mml:mi>δ</mml:mi></mml:mrow></mml:math><inline-graphic xlink:href="srinivasan-ieq4-3156925.gif"/></alternatives></inline-formula>, and this was later reduced to <inline-formula><tex-math notation="LaTeX">$ T_{S}+11\delta$</tex-math><alternatives><mml:math><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>11</mml:mn><mml:mi>δ</mml:mi></mml:mrow></mml:math><inline-graphic xlink:href="srinivasan-ieq5-3156925.gif"/></alternatives></inline-formula>, where <inline-formula><tex-math notation="LaTeX">$ \delta$</tex-math><alternatives><mml:math><mml:mi>δ</mml:mi></mml:math><inline-graphic xlink:href="srinivasan-ieq6-3156925.gif"/></alternatives></inline-formula> is the upper bound on message delivery. The above result is not trivial as they allowed processes that failed before <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq7-3156925.gif"/></alternatives></inline-formula> to recover after <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq8-3156925.gif"/></alternatives></inline-formula> and participate in consensus. But these algorithms assume that the upper bound for message delivery <inline-formula><tex-math notation="LaTeX">$\delta$</tex-math><alternatives><mml:math><mml:mi>δ</mml:mi></mml:math><inline-graphic xlink:href="srinivasan-ieq9-3156925.gif"/></alternatives></inline-formula> holds even for messages sent before <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq10-3156925.gif"/></alternatives></inline-formula> (i.e.,) when the system is in asynchrony. This assumption is limiting as messages can get delayed beyond expected timings in real time distributed systems due to different reasons like network congestion, packet re-transmission, e.t. c. In this work, we overcome this limitation by assuming messages sent before <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq11-3156925.gif"/></alternatives></inline-formula> has no upper bound while also allowing process restarts after <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq12-3156925.gif"/></alternatives></inline-formula> and show that consensus can be solved in constant time after <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq13-3156925.gif"/></alternatives></inline-formula>. Our proposed algorithm solves consensus in <inline-formula><tex-math notation="LaTeX">$ T_{S}+10\delta$</tex-math><alternatives><mml:math><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>10</mml:mn><mml:mi>δ</mml:mi></mml:mrow></mml:math><inline-graphic xlink:href="srinivasan-ieq14-3156925.gif"/></alternatives></inline-formula> time, which is more efficient than the current upper bound and without the limiting assumption of bounded message delay before <inline-formula><tex-math notation="LaTeX">$ T_{S}$</tex-math><alternatives><mml:math><mml:msub><mml:mi>T</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:math><inline-graphic xlink:href="srinivasan-ieq15-3156925.gif"/></alternatives></inline-formula>.