13.3k views
2 votes
how long would it take in the best case if we added the presumed abort optimization? assume every participant still wants to commit and that a transaction is considered complete when every log record is written and flushed here's the same network info copied for convenience: c takes 40 seconds to send a message to p1, p2, and p3. c can broadcast a message to them simultaneously. p1 takes 6 seconds to send a message to c. p2 takes 12 seconds to send a message to c. p3 takes 15 seconds to send a message to c. each node takes 6 seconds to flush a message.

User Gaetan
by
8.1k points

1 Answer

3 votes

Final answer:

The best-case time for the commit operation with 'presumed abort' optimization is 61 seconds, considering the initial broadcast time (40 seconds), the longest response time from 'p3' (15 seconds), and the flush time (6 seconds).

Step-by-step explanation:

The question pertains to a distributed systems scenario, specifically focusing on the time it takes to perform a commit operation with an optimization called 'presumed abort'. In this scenario, a coordinator 'c' sends messages to three participants 'p1', 'p2', and 'p3' who respond back to the coordinator. Since each participant still wishes to commit and we need to consider the time taken for messages to be sent, received, and logs to be flushed, we obtain this best-case timeline:

  • 'c' takes 40 seconds to broadcast a message to 'p1', 'p2', and 'p3'
  • 'p1' takes 6 seconds to send a response to 'c'
  • 'p2' takes 12 seconds to send a response to 'c'
  • 'p3' takes 15 seconds to send a response to 'c'
  • Each node then takes 6 seconds to flush a log record after sending their response

For the commit operation to be considered complete, 'c' must receive the responses from all participants and all their log records must be written and flushed. To determine the total time, we look at the longest response time, which is from 'p3' (15 seconds), add the time to flush (6 seconds), and then add this to the initial broadcast time (40 seconds). Thus, in the best-case scenario, the total time taken for the commit operation would be 61 seconds.

User Liorda
by
7.5k points