Modeling A Replicated Storage Organisation Inwards Tla+, Projection 2

Two weeks ago, I had described stage 1 of the TLA+ projection I assigned inwards my distributed systems class. I promised to give you lot the solution soon. I pose the solution for phase1 on github.

In this post, I volition pull the stage ii of the project. In stage ii of the project, nosotros role Chain Replication to ensure persistence as well as consistency of the objects stored. Read my chain replication summary to refresh on the algorithm.


Before performing the write, the customer reads from the tail of chain to larn the highest versioned write completed. The customer as well as thence increments the version number, as well as performs the write to the head of chain alongside this version number. Since a node failure may atomic number 82 to a asking beingness lost (be it a read request, or update request), the customer needs to repeat the asking until a response is returned from the tail. The customer cannot foremost a novel asking before it receives a reply to its before request.

A configurator procedure (an infallible procedure which would inwards exercise locomote implemented equally a Paxos cluster) volition locomote used for configuring the chain. One responsibleness of the configurator is to take a downwards node from the chain, as well as the other is to add together a novel node to the tail of the chain if the length of the chain is less than 3. The chain is initially empty, as well as the configurator populates the chain using the "add a novel node to the tail" action.

A storage node tin trounce (provided that FAILNUM is non exceeded), as well as recover at whatsoever time. For simplicity nosotros assume the customer writes to entirely ane item, thence nosotros omit the fundamental business office of the key-value dyad item, as well as model the database db at each node to consist of ane item. The newer version of the especial volition writeover the one-time version.

In this stage of the project, the storage organization performs server-side routing, as well as modeling of the organization is done using message passing instead of shared memory. Once a storage node receives a novel asking inwards its message-box msg, it volition consult the configurator to figure out its successor inwards the chain as well as propagate the asking to its successor. If the storage node is the tail it volition ship a reply to the client. An update asking modifies the db alongside the newer version of the item. A read asking does non modify the db.

The students are asked to write a PlusCal programme to model this algorithm. I render them the below template equally a starting point, as well as they create total inwards the redacted parts, role the toolkit to interpret their code to TLA+, write invariant properties as well as model-check for correctness. I also inquire them to listing their observations most phase2 "Voldchain" versus phase1 "Voldemort quorums" version of the protocol. How create they compare? Is Voldchain capable of tolerating to a greater extent than failures alongside less pose out of nodes? How create you lot explicate the difference? What is the analog of write quorum, as well as read quorum inwards Voldchain?


I volition facial expression a calendar week around before I percentage my solution for the Project2.

0 Response to "Modeling A Replicated Storage Organisation Inwards Tla+, Projection 2"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel