The purpose of this project is to design and implement a distributed storage system. The system's architecture is inspired by the abstract architecture for distributed file systems. Among the components, we have a client and multiple instances of a server. We adopt an asynchronous peer-to-peer replication among the server instances with a replication factor of three. The system supports two operations: read and write objects. Each object is represented in a JSON format and stored in a local file for each instance of the server. Note that the files have a limited size of 30 MB. As well each object has a key (a string) attached to it. Finally, we use Kafka as a middleware between the client and the server(s) To write an object, the JSON content and the key are sent to the server through Kafka. When the write operation succeeds, the client receives an

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Question:

The purpose of this project is to design and implement a distributed storage system. The system's architecture is inspired by
the abstract architecture for distributed file systems.

Among the components, we have a client and multiple instances of a server. We adopt an asynchronous peer-to-peer
replication among the server instances with a replication factor of three. The system supports two operations: read and write
objects. Each object is represented in a JSON format and stored in a local file for each instance of the server. Note that the files
have a limited size of 30 MB. As well each object has a key (a string) attached to it. Finally, we use Kafka as a middleware
between the client and the server(s)

To write an object, the JSON content and the key are sent to the server through Kafka. When the write operation succeeds, the
client receives an acknowledgement from each server. A write operation with an existing key replaces the existing object.
Moreover, the client sends a request through Kafka and receives a copy from each server with the logical clock attached to it to
read an object. The client then analyses the logical clocks, decides upon the latest version and prints it out. In case there are
multiple concurrent versions, it prints them all out. When the client identifies that a given copy has a version older than the other
versions, it notifies the replica, which then updates its store. Finally, the replicas keep a direct connection to each other and
exchange a heartbeat message regularly with their logical clock piggybacked to the message. In this implementation, we will
adopt vector clocks as a logical clock.

The task is the implementation of the system, including the setup of the Kafka cluster.

 

Setup of the Kafka cluster, including topic management.

Implementation of the client and services in the Ballerina language.

Expert Solution
steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
Software Systems
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education