Powrót do strony głównej

Architektura dla 9 bln zapisów na serwerze

Architektura przechowuje 9 bln zapisów w plikach sparse z adresowaniem według współrzędnych i kodowaniem Z. Zoptymalizowana dla NVMe, bez indeksów i blokad. Wizualizacja przez stat() i kafelki.

9 bilionów zapisów w plikach rozmiaru iPhone’a
Advertisement 728x90

Skalowalna architektura plików dla bilionów rekordów na zwykłym serwerze

System oparty na minimalnym Linuxie, binarce Go i systemie plików przetwarza 250 milionów rekordów na komputerze użytkownika. Rozszerzenie do 9 bilionów — poprzez rozdzielczość iPhone (1170×2532 pikseli jako galaktyki, wewnątrz — gwiazdy). Przy 255 bajtach na rekord Droga Mleczna zajmuje 25 TB. iPhone o pojemności 256 GB pomieści 1% galaktyki — 1 miliard rekordów. Całość — 100 urządzeń bez centrów danych.

Adresowanie współrzędnymi bez indeksów

Adres preceduje rekord: 64-bitowa ścieżka z współrzędnych galaktyki i gwiazdy tworzy klucz EHO-7K3F-91QM-2X. Każda galaktyka to plik rzadki 723 MB (3 miliony × 256 bajtów), faktycznie ~7 MB przy 1% wypełnieniu. Linux nie zapisuje pustych obszarów na dysku.

Hierarchia katalogów ogranicza 100 000 plików na poziom:

Google AdInline article slot
galaxies/
  AA/
  AB/
  ...

1296 sektorów po ok. 2300 galaktyk. Wewnątrz — kodowanie Z (krzywa Mortona): mieszanie bitów x/y zapewnia lokalność dostępu, minimalizuje seeki.

Struktura rekordu i bezpieczeństwo

Gwiazda jest zapisywana według przesunięcia, aktualizacje — na to samo miejsce. Puste pola to zera z kontrolą CRC32. Plik tworzony jest na żądanie i istnieje wiecznie.

Klucz to GUID (przestrzeń 2¹²²), przechowywany jako Argon2(GUID + współrzędne). Struktura 256 bajtów:

Google AdInline article slot
  • 1 bajt flagi (WRITING podczas zapisu)
  • 32 bajty hash Argon2
  • 219 bajtów danych
  • 4 bajty CRC32

Brak blokad: dostęp po kluczu. Utrata GUID = utrata rekordu.

Skalowanie: prefiks klucza określa węzeł. Bez konsensusu, transakcji czy wyboru lidera.

Wizualizacja Wszechświata i optymalizacje

Mapa Wszechświata (1170×2532): piksel = galaktyka, jasność = gęstość (stat() / 723 MB). 3 miliony stat() na NVMe — 10–30 sekund, generacja w tle w formacie PNG.

Google AdInline article slot

Mapa galaktyki: sekwencyjne odczytanie 723 MB (240 ms na NVMe) lub 7 MB (2–3 ms) dla pliku rzadkiego. Renderowanie typu tajlowe jak w Google Maps: invalidacja po sektorach, czarne tajle są stałe.

Porównanie z projektem «ECHO»

| Aspekt | «ECHO» | Nowa architektura |

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

| Skalowanie | 250 mln | 9 bilionów (36 Dróg Mlecznych) |

| Indeks | JSON w pamięci | Współrzędne = adres |

| Struktura | Ręczna | Krzywa Mortona |

| Uwierzytelnianie | PIN | GUID + Argon2 |

Co jest ważne

  • Przestrzeń adresowa oparta na współrzędnych eliminuje indeksy i rejestry.
  • Pliki rzadkie + porządek Z zapewniają dostęp O(1) przy niskiej gęstości.
  • 100 urządzeń pokrywa biliony rekordów bez infrastruktury.
  • CRC32 + bit WRITING gwarantują integralność bez blokad.
  • Wizualizacja przez stat() i tajle skaluje się do galaktyk.

— Editorial Team

Advertisement 728x90

Czytaj dalej