Zurück zur Startseite

Architektur für 9 Billionen Datensätze auf einem Server

Architektur speichert 9 Billionen Datensätze in sparse files mit Koordinaten-Adressierung und Z-encoding. Optimiert für NVMe, ohne Indizes und Locks. Visualisierung via stat() und Tiles.

9 Billionen Datensätze in iPhone-größen Dateien
Advertisement 728x90

Skalierbare Dateiarchitektur für Trilliarden Datensätze auf einem Standard-Server

Die Adresse kommt vor dem Datensatz: Ein 64-Bit-Pfad aus galaktischen und stellaren Koordinaten bildet den Schlüssel EHO-7K3F-91QM-2X. Jede Galaxie ist eine spärliche Datei von 723 MB (3 Millionen × 256 Byte), die in der Praxis bei 1 % Belegung realistischerweise nur ~7 MB groß ist. Linux schreibt leere Speicherblöcke nicht auf die Festplatte.

Die Verzeichnishierarchie beschränkt sich auf 100.000 Dateien pro Ebene:

galaxies/
  AA/
  AB/
  ...

1.296 Sektoren mit jeweils etwa 2.300 Galaxien. Darin wird Z-Ordnungskodierung (Morton-Kurve) verwendet, um x/y-Bits zu mischen und die Zugriffslokalisierung zu optimieren – was das Suchen minimiert.

Google AdInline article slot

Datensatzstruktur und Sicherheit

Sterne sind an festen Offsetpositionen fixiert; Updates erfolgen an derselben Stelle. Freie Slots sind Nullwerte mit CRC32-Prüfung. Dateien werden erst beim Bedarf erstellt und bleiben für immer erhalten.

Schlüssel: GUID (Raum von 2¹²²), gespeichert als Argon2(GUID + Koordinate). Die Struktur hat 256 Byte:

  • 1 Byte Flags (WRITING während Schreibvorgang)
  • 32 Byte Argon2-Hash
  • 219 Byte Daten
  • 4 Byte CRC32

Keine Sperren: Der Zugriff basiert ausschließlich auf dem Schlüssel. Verliert man die GUID, geht der Datensatz verloren.

Google AdInline article slot

Skalierung: Der Präfix bestimmt den Knoten. Kein Konsens, keine Transaktionen und keine Leader-Election erforderlich.

Universum-Visualisierung und Optimierungen

Universum-Karte (1170×2532): Pixel = Galaxie, Helligkeit = Dichte (stat() / 723 MB). 3 Millionen stat()-Aufrufe auf NVMe dauern 10–30 Sekunden – im Hintergrund generiert als PNG.

Galaxie-Karte: sequenzieller Lesezugriff auf 723 MB (240 ms auf NVMe) oder 7 MB (2–3 ms) bei spärlicher Belegung. Tile-Rendern wie bei Google Maps: Invalidierung nach Sektoren, schwarze Tiles sind statisch.

Google AdInline article slot

Vergleich mit Projekt "ECHO"

| Aspekt | "ECHO" | Neue Architektur |

|--------|--------|-------------------|

| Skalierung | 250 Mio. | 9 Billionen (36 Milchstraßen) |

| Index | JSON im RAM | Koordinaten = Adresse |

| Struktur | Manuell | Morton-Kurve |

| Authentifizierung | PIN | GUID + Argon2 |

Wichtige Erkenntnisse

  • Koordinatenbasierte Adressierung entfällt den Index und die Registrierung.
  • Spärliche Dateien + Z-Ordnung ermöglichen O(1)-Zugriff bei geringer Dichte.
  • 100 Geräte reichen aus, um Trilliarden Datensätze ohne zusätzliche Infrastruktur abzudecken.
  • CRC32 + WRITING-Bit gewährleisten Integrität ohne Sperren.
  • Visualisierung über stat() und Tiles skaliert bis hin zu Galaxien.

— Editorial Team

Advertisement 728x90

Weiterlesen