Skip to content

hagerali99/Distributed-System-BigTable

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • Blances 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-Mutux

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • JavaScript 69.5%
  • Vue 29.9%
  • HTML 0.6%