Here’s a concise and technical README.md for your Consistency Algorithms in Replicated Database Systems repository, complete with badges and clear instructions:
Implementation of Strict, Causal, Sequential, PRAM, and Independent consistency models for replicated databases in Java.
This project demonstrates five consistency algorithms for replicated database systems:
- Strict Consistency
- Causal Consistency
- Sequential Consistency
- PRAM (Pipelined RAM) Consistency
- Independent Consistency
Built using Java RMI and MySQL, it simulates multi-client interactions with replicated servers to validate each model’s behavior under concurrent operations.
- Java 8+
- MySQL Server
mysql-connector-java-8.0.19.jar(included insrc/)
Ensure the MySQL connector JAR and current directory are in your CLASSPATH:
export CLASSPATH=.:./mysql-connector-java-8.0.19.jar rmiregistry -J-Djava.rmi.useLocalHostName=true -J-Djava.rmi.server.hostname=127.0.0.1 cd src/
java Server # Primary server
java Server2 # Replica server cd src/
java Client # Client 1
java Client2 # Client 2 src/
├── Server.java # Primary server (implements RMI)
├── Server2.java # Replica server
├── Client.java # Client 1 logic
├── Client2.java # Client 2 logic
├── ConsistencyModel.java # Interface for all algorithms
├── StrictConsistency.java
├── CausalConsistency.java
├── SequentialConsistency.java
├── PRAMConsistency.java
├── IndependentConsistency.java
└── mysql-connector-java-8.0.19.jar
- RMI-based communication between clients and replicated servers.
- MySQL backend for persistent storage.
- Validation scripts to verify each consistency model’s guarantees.
- Thread-safe operations for concurrent client requests.
If you use this work, please link to the repository:
https://github.com/BhanuPrakashNani/Consistency_In_Replicated_DB_Systems
Pull requests are welcome! For major changes, open an issue first.
MIT © Bhanu Prakash Poluparthi
Let me know if you’d like to add:
- A diagram of the RMI architecture.
- Sample output logs for each consistency model.
- Instructions for Docker deployment.