Cache z synchronizacją procesów i bez problemu slammingu

Cache z synchronizacją procesów i bez problemu slammingu
TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
2

Witam,

praktycznie każdy system cache dla PHP z jakim się zetknąłem, nie bierze pod uwagę wielowątkowości, nie synchronizuje procesów, co skutkuje problemem slammingu, który skutecznie obniża wydajność systemów cache.

Od kilku lat synchronizuje tego typu rzeczy, ostatnio uaktualniłem swój system cache z synchronizacją procesów, i wypuściłem na githubie pod nazwą "No Slam Cache":

https://github.com/tztztztz/php-no-slam-cache

W readme na stronie głównej projektu wyjaśniam (po angielsku) na czym polega problem slammingu, i w jaki sposób rozwiązuje go pakiet "No Slam Cache".


DRY > SOLID (nie bierz tego zbyt poważnie)
DE
  • Rejestracja:ponad 14 lat
  • Ostatnio:7 miesięcy
  • Postów:112
0

Przydałby się testy i porównania twojego rozwiazania nad tymi popularnymi. Mimo wszystko pomysł wygląda ciekawie


TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Skrypt testowy znajduje się w blibliotece i ma nazwę:

cli-test-cache.php

I jest z myślą o odpaleniu go równocześnie w kilku oknach linii komend na raz - czyli np. kilka okienek SSH albo CMD na windowsie.

W komentarzach wewnątrz skryptu opisuję dokładniej jak testować wielowątkowość przy pomocy tego skryptu.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 1x, ostatnio: TomRZ
TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Dla zainteresowanych - został ulepszony skrypt testowy dla wygodniejszego testowania biblioteki. Wcześniej trzeba było grzebać w kodzie skyptu, teraz wszystko przez linię komend.

Uruchomienie bez argumentów powoduje wyświetlenie pomocy z listą dostępnych komend i testów.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 1x, ostatnio: TomRZ
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:12 miesięcy
  • Postów:1788
0

Fajnie wytłumaczone, nauczyłem się czegoś nowego - duży plus :)

TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Proszę.

Będę tutaj informować kiedy pojawią się nowe wersje biblioteki.

Planuję w przyszłości dodać obsługę Redis, SQLite i innych metod składowania.


DRY > SOLID (nie bierz tego zbyt poważnie)
MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 19 godzin
  • Postów:644
0

Dlaczego korzystasz z własnego loadera? Mało kto może sobie dzisiaj pozwolić na dodawanie bibliotek do projektu które nie są wspierane przez composer-a.

TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Dodanie do composera to żaden problem, jeżeli ktoś tego potrzebuje, a classloader powoduje, że można od reki np, testować.

Edit: pisząc, że nie problemu z composerem, mam na myśli np. to, że bliblioteka jest zgodna ze standardem PSR jeżeli chodzi o nazewnictwo klas i ich umiejscownie w folderach.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 3x, ostatnio: TomRZ
MA
Katalog vendor to chyba nie odpowiednia nazwa dla głównych plików :) Umieść wszystko w src/, dostosuj się do PSR a dokładnie PSR-1, PSR-2, PSR-4 i idealnie było by też do PSR-6
MA
Tak, masz rację PSR nie narzuca nazwy katalogu - chociaż w przykładach podaje src i lib jako główne a w większości nowych bibliotek na github jest tylko src. Jak wchodzę na Twoje repozytorium i widzę katalog vendor to myślę sobie, że wrzuciłeś (przez pomyłkę?) na repo katalog z bibliotekami z composera, dopiero później wiem, ze to jednak główny katalog z klasami. Kolejnym minusem jest to, że teraz nie możesz skorzystać z dodatkowych bibliotek composera - więc gdybyś chciał sie dostosować do np. PSR-6 to zmiana nazwy vendor będzie wymagana.
MA
PSR-0 jest deprecated
TR
  • Rejestracja:prawie 8 lat
  • Ostatnio:14 dni
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Biblioteka została dodana do compsera:

https://packagist.org/packages/inopx/noslamcache


DRY > SOLID (nie bierz tego zbyt poważnie)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.