Verteiltes System - großer Bigtable
Bigtable ist ein verteiltes Speichersystem zum Verwalten strukturierter Daten, die so ausgelegt sind, dass sie auf eine sehr große Größe skaliert werden.
Systemkomponenten
Das System besteht aus 3 Hauptkomponenten:
- Master Server
- Tablet -Server
- Kunden
Systemziele
Master Server
- Balance -Daten zwischen angeschlossenen Tablet -Servern.
- Konstruieren Sie Metadaten und senden Sie es an die Kunden.
- Datenbilanzdaten.
- Protokolle des gesamten Systems verwalten.
Tablet -Server
- Jeder Tablet -Server verwaltet die Anzahl der Tablets.
- Stellen Sie die API für Kunden zur Verfügung.
- Lesen Sie Anfragen ohne Sperren ab.
- Aktualisierungs-/Löschen von Anforderungen (Mutex-Lock) handhaben.
- Enthält faul gelöschte, aktualisierte, erstellte Vektoren.
- Senden Sie ihre Protokolle sofort an Master.
Kunden
- Anfragen an Tablet -Server senden.
- Wählen Sie den rechten Tablet -Server gemäß den verfügbaren Metadaten aus.
Systemunterstützung
Eine beliebige Anzahl von Tablet -Servern kann hinzugefügt werden und jeder Tablet -Server kann eine beliebige Anzahl von Tablets verwalten.
Systemarchitektur
Laufen
# 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