/Distributed-System-BigTable

Distributed system for managing structured data that is designed to scale to a very large size.

Primary LanguageJavaScriptMIT LicenseMIT

Distributed System - BigTable

Distributed system for managing structured data that is designed to scale to a very large size.

The data this system manages consists of one BigTable that is sharded into
3 tablets divided by Row Key , Each tablet is assigned a key range of data .

System Components

The system consists of 3 major components :

  1. One Master Server
  2. Two Tablet Servers
  3. Many Clients

Master Server

  • Tablets Assignment
  • Listens For Any Updates Requests And Checks For Balancing
  • Balances Data between the 3 Tablets Whenever Necessary
  • Updates Metadata And Resends It To The Clients
  • Manages Logs For The Whole System In A local File System

Tablet Servers

  • Each Tablet Server Manages One Or Two Tablets
  • Provides API For Clients
  • Handles Multiple Requests At A Time (Locking)
  • Sends Updates Periodically To Master
  • Sends Its Logs To Master Periodically

Client

  • Sends Requests To Tablet Servers Based On The Provided API
  • Manages Sending Requests To The Right Tabler Server Based On The Provided MetaData
API Functions
Read Row/s
Delete Row/s
Update Row/s
Delete Row/s Field/s
Insert Row/s

Sample Examples





Tools

  • Nodejs
  • Vue
  • Mongodb
  • Socket.io
  • Async-Mutex

Run

    
    # install
    $ cd master
    $ npm i
    $ npm run install-tablets-client

    # master-run
    $ cd master
    $ npm run start
    
    # tablet server#1-run
    $ cd tablet-server
    $ npm run start
    
    # tablet server#2-run
    $ cd tablet-server2
    $ npm run start
    
    # client-run
    $ cd client
    $ npm run serve - Then Open http://localhost:8080/ -
    
    # for Logs
    $ cd master
    $ npm run start-logs   - Then Open master/systemLogs.log -

Contributors

Nada Abdelmaboud Menna Mahmoud Hager Ismael Nihal Mansour Aya Adel

License

This software is licensed under MIT License, See License