Skip to content

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

License

Notifications You must be signed in to change notification settings

nadaabdelmaboud/Distributed-System-BigTable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 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
  • 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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •