Système distribué - BigTable
BigTable est un système de stockage distribué pour gérer des données structurées conçues pour évoluer vers une très grande taille.
Composants système
Le système se compose de 3 composants principaux:
- Serveur principal
- Serveurs de tablettes
- Clients
Objectifs du système
Serveur principal
- Équilibrez les données entre les serveurs de tablettes connectés.
- Construisez des métadonnées et envoyez-la aux clients.
- Rééquilibre les données.
- Gérez les journaux de l'ensemble du système.
Serveurs de tablettes
- Chaque serveur de tablettes gère le nombre de tablettes.
- Fournir une API aux clients.
- Gérer les demandes de lecture sans verrouillage.
- Gérer les demandes de mise à jour / supprimer (Mutex-Lock).
- Contiennent des vecteurs paresseux, mis à jour, créés.
- Envoyez leurs journaux à maîtriser immédiatement.
Clients
- Envoyez des demandes aux serveurs de tablette.
- Choisissez le bon serveur de tablette en fonction des métadonnées disponibles.
Prise en charge du système
Un nombre de serveurs de tablette peut être ajouté et chaque serveur de tablette peut gérer n'importe quel nombre de tablettes.
Architecture du système
Courir
# 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