0% found this document useful (0 votes)
3 views2 pages

Key-Value Store Server & Client Assignment

The assignment involves developing and testing a simple in-memory key-value store server and client application using Python's gevent library. Key tasks include implementing server commands for data manipulation, ensuring concurrent client handling, and documenting the code and user guide. Deliverables include source code, a detailed report on implementation and testing, and a user manual.

Uploaded by

nishatayub702
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views2 pages

Key-Value Store Server & Client Assignment

The assignment involves developing and testing a simple in-memory key-value store server and client application using Python's gevent library. Key tasks include implementing server commands for data manipulation, ensuring concurrent client handling, and documenting the code and user guide. Deliverables include source code, a detailed report on implementation and testing, and a user manual.

Uploaded by

nishatayub702
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Assignment: Implement and Test a Key-Value Store Server and Client DUE DATE :- 20 Jan 2025

Objective: Develop and test a simple in-memory key-value store server and client application using
Python's gevent library for handling concurrency and network communication.

Requirements:
1. Understanding the Components:
 Study the provided Server and Client classes, and the ProtocolHandler
that manages the communication protocol.
 The server should handle multiple concurrent clients using gevent's asynchronous
capabilities.
2. Setup Environment:
 Install Python and necessary packages (gevent).
 Ensure the system is configured to support multiple simultaneous network
connections.
3. Implement Server:
 The server should be able to accept commands like GET, SET, DELETE, FLUSH,
MGET, and MSET to manipulate the in-memory dictionary.
 Understand the handling of different data types and responses based on the custom
protocol (simple strings, errors, integers, bulk strings, arrays, and dictionaries).
4. Implement Client:
 The client should connect to the server and be able to send requests and receive
responses.
 Implement functionalities to send specific commands to the server and display
responses.
5. Testing:
 Test the server and client interaction by running multiple client instances and
performing various operations.
 Verify the server's concurrency handling by executing simultaneous commands from
different clients.
6. Enhancements (Optional):
 Add error handling and improve resilience against invalid input or unexpected
disconnections.
 Enhance the protocol to support more complex data structures or operations if
needed.
7. Documentation:
 Document the code clearly, explaining the purpose and function of each part of the
protocol handler, server, and client.
 Write a user guide on how to run the server and client, including how to use the
REPL interface in the client for interacting with the server.
Deliverables:
 Source code for the server and client.
 A detailed report documenting the implementation, challenges faced, and testing procedures.
 A user manual for running and interacting with the key-value store system.
This assignment is intended to provide practical experience with network programming,
asynchronous I/O operations using gevent, and the implementation of application-level protocols.

You might also like