Course Name: Algorithmic Problem Solving
Course Code: 23ECSE309
Name: Adarsh Sidnal
University: KLE Technological University, Hubballi-31
This is a data deduplication project implemented using a client-server architecture. The
servercli
folder acts as the server and the client folder as the client, allowing the client to interact
with the server from any machine in the network.
The client sends files to the server, which performs the deduplication task. It only stores files that are unique compared to those already on the server. Otherwise, it saves a reference to the existing file.
Each client's file names and their locations on the server are maintained and stored to achieve this task.
To run the server:
g++ -o a server -lboost_serialization -lstdc++fs
Command line parameter for the server is the port number, such as 8000
./a 8000
Note: The executable file name for the server should be of one character
To run the client:
g++ -o cli cli.cpp
Command line arguments for the clients are the IP address of the server and the port number (this should be the same as that used in the server).
./cli 127.0.0.1 8000
Note: Since the same machine is working as the server, we use 127.0.0.1 (loopback address) as the IP of the server.
For more details on the implementation of this project, please visit the repository on GitHub: Click Here
| Operation | Time Complexity | Space Complexity |
|---|---|---|
| Deduplication | O(n) | O(n) |
| Server Operation | O(1) | O(n) |
| Client Operation | O(1) | O(n) |
© 2024 Adarsh Sidnal - KLE Technological University, Hubballi-31