Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makarov-danil-school-projects-ctu/big-data-mongo-sharding-replication
MongoDB Cluster with sharding and replication
https://github.com/makarov-danil-school-projects-ctu/big-data-mongo-sharding-replication
clustering docker-compose mongodb nosql replication sharding
Last synced: 11 days ago
JSON representation
MongoDB Cluster with sharding and replication
- Host: GitHub
- URL: https://github.com/makarov-danil-school-projects-ctu/big-data-mongo-sharding-replication
- Owner: Makarov-Danil-School-Projects-CTU
- Created: 2024-08-13T13:24:05.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-13T20:43:53.000Z (6 months ago)
- Last Synced: 2024-11-23T21:30:30.861Z (2 months ago)
- Topics: clustering, docker-compose, mongodb, nosql, replication, sharding
- Language: JavaScript
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Keywords: Mongo, Docker Compose, Replication, Sharding, Clustering
## 📋 Task: Create 15 Non-Trivial Queries:
Design 15 different queries that are non-trivial and interconnected, demonstrating the capabilities and operations of the selected NoSQL database.
Each example should include:
- **The Query or Command:** The specific operation being performed on the database.
- **Solution:** The expected result or output of the query/command.
- **Detailed Explanation:** A thorough explanation of what each query/command does, why it works that way, and the context within the database.## Utilize Database-Specific Features:
Make use of database-specific features such as:- **Clustering:** Demonstrate how to manage and query data within a cluster.
- **Replication Factor:** Show how replication is handled, including how data is distributed across nodes and how it maintains consistency.
- **Sharding:** Provide examples of how data is partitioned across different shards, and how queries are executed in a sharded environment.## Simulate a Node Failure:
Include an example where you simulate the failure of one or more nodes within the database cluster.
Describe Solutions: Offer possible solutions for handling such failures, explaining how the database can maintain availability, consistency, or recover from the failure, depending on the CAP theorem properties it adheres to.## Example Format:
Each example should be clear and well-documented, with each step and its reasoning fully explained.
Include any necessary setup commands or context required to understand the examples.## How to run?
docker-compose up -d && ./commands.sh
## Connect to Mongo Compass
## mongodb://127.0.0.1:27117,127.0.0.1:27118 (optional)## Create student to test clustering:
docker-compose exec -it router01 mongosh
use dorm
db.students.insertOne({
firstName: "John",
lastName: "Doe",
DOB: new Date("1995-05-15"),
gender: "Male",
nationality: "American",
emailAddress: "[email protected]",
phoneNumber: "123-456-7890",
roomNumber: 101,
block: "A",
checkInDate: new Date("2023-01-01"),
checkOutDate: new Date("2023-06-30"),
university: "Example University",
faculty: "Engineering"
});After that, there will be no records about John Doe in two shard servers
## Try:
docker-compose exec -it shard01-a mongosh
use dorm
db.students.find({ lastName: "Doe" });
exitdocker-compose exec -it shard02-a mongosh
use dorm
db.students.find({ lastName: "Doe" });
exitdocker-compose exec -it shard03-a mongosh
use dorm
db.students.find({ lastName: "Doe" });
exit