Implement a 2 phase distributed commit protocol and use controlled and randomly injected failures to study how the 2PC protocol handles node crashes.
$30-250 USD
Paid on delivery
Project :
Implement a 2-phase distributed commit (2PC) protocol and use controlled and randomly injected failures to study how the 2PC protocol handles node crashes. Assume one coordinator and at least three participants in the 2PC protocol. Similar to the
previous projects, we use multiple processes to emulate multiple nodes. Vote requests and
responses should be carried out using communications. Each node (both the coordinator and
the participants) devises a time-out mechanism when no response is received and transits to
either the abort or commit state. Design a controlled failure test to evaluate whether the
implemented 2PC protocol leads to consistent states across the coordinator and participants.
For simplicity, you can assume that only one node fails in the controlled test. Evaluate different
possibilities of failures (e.g., coordinator fails before or after sending vote-commit). To emulate a
failure, you can impose a much longer delay at a failed node than the time-out period used by
other healthy nodes. Node print their states before termination. Verify all nodes converge to the
same state regardless of the failure.
Furthermore, evaluate the 2PC protocol by randomly injecting failures to any nodes (e.g., a node
may be delayed emulating a failure with a probability at any point during execution). Verify the
terminal state to ensure consistency.
Project ID: #32181669
About the project
4 freelancers are bidding on average $145 for this job
Hello Sir/ Ma’am We are a group of Software Engineers (Programmers) having 10+ years of experience. Expert in JAVA, C, C++ , C# , Python, MATLAB. Done 700+ projects here on FREELANCER.COM. Please check our profile More