Przejdź do treści

storh

storh to samodzielny magazyn danych PHP oparty na plikach: dokumenty JSONC, log segmentowany tylko do dopisywania oraz kolejka tylko do dopisywania. Przechowuje rekordy z identyfikatorami UUIDv7, obsługuje odczyt strumieniowy oraz zapytania kursorem lub według zakresu czasu, a zamiast serwera bazy danych korzysta z atomowych operacji systemu plików.

Wywołujący przekazują katalog. storh nie wykrywa ścieżek aplikacji, nie odczytuje stałych globalnych ani nie wymaga adaptera frameworka.

Silniki

  • DocStore przechowuje jeden plik JSONC na rekord, a ścieżki są partycjonowane według końcowych znaków UUID. Najlepiej sprawdza się przy odczytach pojedynczych rekordów według ID i zapytaniach o indeksowane pola.
  • SegmentedLog dopisuje rekordy do plików segmentów jako wiersze JSON zabezpieczone prefiksem z długością w bajtach i sumą kontrolną. Najlepiej sprawdza się przy strumieniach intensywnie dopisywanych oraz odczytach kursorem i według zakresu czasu.
  • Queue dopisuje trwałe zdarzenia zadań i przechowuje stan kolejki w pamięci. Najlepiej sprawdza się przy trwałym przekazywaniu pracy między procesami.

Nie wiesz, które rozwiązanie pasuje do Twojego obciążenia? Zobacz Wybór silnika, aby porównać je obok siebie.

DocStore, SegmentedLog i Queue to aliasy klas implementacyjnych DocPerFileStore, SegmentedLogStore i LogQueue, więc obie nazwy odnoszą się do tej samej klasy.

Wymagania

  • PHP 8.2 lub nowsze
  • ext-json
  • lokalny lub zamontowany system plików obsługujący semantykę atomowej zmiany nazwy w obrębie katalogu

Co dalej