Fail-Silent Replicated Token Manager with Atomic Semantics You extend your client-server token…
Fail-Silent Replicated Token Manager with Atomic SemanticsYou extend your client-server token manager from the last project to support replication and atomic semantics.Each token is to be implemented as a (1,N) register with atomic semantics (see slides 38-45 inDistributed Systems Abstractions) in a fail-silent system model.Your system should consist of a set of nodes that extend the server API from project 2. Your solution should be developed in Go and utilize thegRPCand GoogleProtocol Bufferframeworks.Extend each token to include the access points (IP address and port number) of its single writer and multiple reader nodes; these nodes constitute the replication scheme of the token.For simplicity, you may assume that the replication schemes of all tokens are static and known apriori to all the server and client nodes in your system. Server nodes create tokens when they start. Your implementation should use a simple YAML file with the replication scheme of all the tokens, i.e. an array oftoken:
readers: array of swhere is of the form :, whereas a writer may also be a reader.A client sends allits write requests for a token to the token’s writer node, while it sends its read requests to any oneof the token’s reader nodes (read requests for a token by the same clientmay be sent to different reader nodes, eg. chosen at random). The single server node contactedis the one responding to a client’s request, and any client can read/write any token.Extend the server API with additional RPC calls so that your system supportsatomic semantics:for any given token, whenever a client read returns a value v and a subsequent (by any) client read returns a value w, then the write of w does not precede the write of vTo this end, you may need to maintain additional state information about each token, and implement theread-impose-write-all(quorum) protocol.Emulatefail-silentbehaviorfor the server nodes as follows. A server node may “crash-stop” foroperations on a particular token X (for which it is a reader or writer) at some time t by indefinitely postponing a response to all operations on X it receives after time t. A server may still be responding as usual to requests on other tokens for which it is a reader or writer.What to submit:Submit a .tar.gz archive with your? complete Go code (and any supporting files)? a bash script demonstrating running your server and sequence of client executions.? README file (with relevant documentation and usage guide)ReferencesQuickstart for the gRPC FrameworkTutorial on Google Protocol BuffersgRPC with ProtoBuf Basics TutorialGoroutinesandgRPC Serve()method ofgRPC Serversyncpackage:Mutexes in GoorMutex TourorRWMutexorMapCommand Line Flags in GoYAML configurations for GoIntroduction to Reliable and Secure Distributed Programmingby C. Cachin,L.Rodrigues, and R.Guerraoui (2011), sections 4.1.-4.3, pages 137-159. May 17 2022 06:55 PM
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.Read more
Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.Read more
Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.Read more
Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.Read more
By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.Read more