Archiwum - September 2007

 
 

Inwalidzi wojenni i wojskowi w aptekach

Kilka dni temu, w pośpiechu (byłem już trochę spóźniony do pracy), odwiedziłem jedną z aptek na Mokotowie. Przyczyna moich odwiedzin była bardzo prozaiczna, przeczucie mówiło mi, że dzisiaj doprowadzę się do stanu permanentnego przeziębienia. Zawsze w takim wypadku zapobiegawczo kupowałem sobie jakiegoś procha. Kontynuując tradycję, tym razem również stanąłem w kolejce. Rozglądając się z nudów po ścianach, w poszukiwaniu czegoś na czym można byłoby zawiesić oko natrafiłem na bardzo ciekawy obrazek.

zdjecie035.jpg

Niestety zdjęcie jest niskiej jakości, ale za to jak dobrze oddaje klimat apteki :) Jest mi szczerze żal inwalidów, którzy “są załatwiani poza wszelką kolejnością” ;).

Memcached, z czym to się je?

Na memcached natknęliśmy się podczas projektowania systemu wielojęzyczności (i18n) jednego z naszych serwisów. Problemem była kwestia przechowywania tłumaczeń tekstów. Pomysłów było kilka:

  • tłumaczenia przechowywane w plikach PHP, odpowiedni plik ze stałymi będzie includowany podczas obsługi żądania strony,
  • tłumaczenia przechowywane w plikach XML, pliki będą doczytywane w miarę potrzeby,
  • tłumaczenia przechowywane w bazie danych, i na bieżąco wczytywane.

Wszystkie te podejścia mają jednak słaby punkt, otóż za każdym żądaniem strony, tłumaczenia muszą być wczytywane od nowa. Faktem jest, że wszystkie trzy metody zawierają w sobie pewien rodzaj cache’owania (wczytywane pliki są cache’owane przez system operacyjny, zapytania bazodanowe cache’owane są przez bazę danych), ale tak na prawdę żaden z nich nie oferuje optymalnego rozwiązania. Najgorszym spośród wyżej wymienionych rozwiązań jest chyba czytanie tłumaczeń z plików XML. Wyobraźmy sobie, że za każdym razem gdy skrypt napotyka napis, musi wczytać odpowiedni plik i przeparsować XML w celu znalezienia tłumaczenia. Dodajmy do tego średnio 100 użytkowników aktualnie korzystających z aplikacji webowej i mamy murowaną porażkę. Można oczywiście spróbować cache’ować napisy na czas żądania strony, ale trzeba wziąć pod uwagę, że tłumaczenia raz wczytane, nie będą się często zmieniać. Większość z nich jest również wspólna dla wszystkich użytkowników. Tutaj do akcji spokojnie można zaprząc memcached.


Den ganzen Beitrag lesen…