https://github.com/sirsayed98/bigtable
Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size .
https://github.com/sirsayed98/bigtable
bigtable database distributed-systems express mongodb node os socket-io
Last synced: 3 days ago
JSON representation
Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size .
- Host: GitHub
- URL: https://github.com/sirsayed98/bigtable
- Owner: sirSayed98
- Created: 2021-05-21T19:03:31.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-06-20T22:56:10.000Z (almost 4 years ago)
- Last Synced: 2025-04-17T14:39:46.631Z (9 days ago)
- Topics: bigtable, database, distributed-systems, express, mongodb, node, os, socket-io
- Language: JavaScript
- Homepage:
- Size: 1010 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Distributed System - BigTable
Bigtable is a distributed storage system for managing structured data that is designed to scale
to a very large size .# System Components
The system consists of 3 major components :
1. Master Server
2. Tablet Servers
3. Clients# System Objectives
## Master Server- Balance data between connected tablet servers .
- Construct metadata and send it to the clients.
- Re-balance data .
- Manage logs of the whole system .## Tablet Servers
- Each tablet server manages number of tablets .
- Provide API for clients .
- Handle read requests without locking .
- Handle update/delete requests (mutex-lock) .
- Contain lazy deleted , updated , created vectors .
- Send their logs to master immediately .
## Clients- Send requests to tablet servers .
- Choose right tablet server according to available metadata .# System Support
any number of tablet servers can be added and each tablet server can manage any number of tablets .# System Architecture

# Run
```
# install dependencies
$ npm i# run master server
$ npm run master# run tablet servers
$ npm run tabletserver1
$ npm run tabletserver2# run clients
$ npm run client1
$ npm run client2```