Mechanizm buforowania Drupal hosting
Wysłany przez joshk w dniu 21 lutego 2009 na 10:05 pm
W mojej niekończącej się pogoni za większą Drupal Chwały, byłem spędzając w ubiegłym roku odkostnieniu się na różne sposoby w celu poprawy wydajności witryny i adres problemy skalowalności. Dziś jakiejś noodling z instancji EC2 Amazon (i pozostałe przekonanego o swojej surowej wydajności jako potencjalnych serwerami baz danych master) miałem myśl:
Co trzeba zrobić, aby przedłużyć statycznej pamięci podręcznej węzła w node_load () poza indywidualnym drupal bootstrap?
Podobnie jak niemal wszyscy, byłem kochający ile memcached pomaga wydajności witryny prędkość. To po prostu skały, a każdy chce zmniejszyć obciążenie serwera i strony odpowiedzi prędkości powinny być patrząc na niego. Jeden z lepszych rzeczy jest to, że można ją przechowywać i powrócić obiektów danych natywnie, co oznacza nie tylko pozwalasz PHP ściągania coś z chmurą pamięci błyskawiczną, również nie ponosi nakład pracy procesora z konieczności unserialize ( ) łańcuch do obiektu lub macierzy.
To niech mnie do myślenia. Jeśli chcesz masowo skalowalnych interaktywnej strony Drupal, trzeba łatwy dostęp do tony węzłów. Nieuchronnie trafisz na ścianę z zalogowanymi wniosków o nich z bazy danych. Ale co, jeśli byliśmy w stanie podjąć wzrost wydajności otrzymujemy od node_load () 's podręcznej statyczne, i sprawiają, że pracują wytrwale w poprzek całej witryny, a nie tylko dla jednej pageload?
To stwarza atrakcyjną mapę drogową dla architektury drupal wysoka wydajność: Korzystanie z bazy danych jako trwałego magazynu danych przy stołach zoptymalizowanych wokół poszukiwań wysokiej wydajności / sortowania przy użyciu metody opisanej w doskonałej modułu DNA Davida Straussa i utrzymywanie memcached oparte chmurę całkowicie zbudowane obiekty węzła na początku tego.
Określająca kod tutaj jest dość prosta. Moduł o niskiej masie realizującej hook_nodeapi () do obsługi wyczyszczenie bufora węzeł wkładki i aktualizacji i napełniania go obciążeniu. Wtedy prosty wrapper wokół domyślnej node_load (), by sprawdzić powiedział cache pierwszy przed udaniem się do bazy danych.
W idealnym świecie, to będzie pieczony w rdzeniu, a coś takiego może mieć możliwość 7.x. Jednak dla doświadczonych programistów Drupal, rodzaj łatanie potrzebne do wdrożenia tego pod 6.x będzie jeszcze prostsze niż dyferencjału serializacji związanych w / memcache pod 5.x. Może to być dosłownie kilka linii po statycznym odprawy node_load ().
Powinien pojawić się taki projekt i dojrzały, może rozwinąć się w ogólnej obiektu-cache dla wszystkich podstawowych elementów drupal (na przykład użytkownicy, terminy taksonomii, itp). Wraz z nowym architeture schematu (który kładzie podwaliny dla aplikacji segmentacji / sharding) i testowania ramy, wysokiej klasy obiekt-cache byłoby umieścić Drupal 7 podjąć przedsiębiorstwo przez burzę.
Wysłany przez robertDouglass w dniu 21 lutego 2009 na 10:56 pm
mówisz rodzaju buforowanie węzłów, które odbywa się z plastra z modułu advcache? Lub coś innego? Terminy taksonomia / słowniki, komentarze i kilka innych rzeczy też są buforowane z advcache. Mike O'Connor właśnie wysłał łatę przenieść go do D6, jak również. Wszystkie rzeczy, które zostaje w pamięci podręcznej cache używa standardowego API, więc wszystko może pójść prosto do memcache (albo z memcache modułu lub cacherouter).
Wysłany przez joshk w dniu 21 lutego 2009 na 11:53 pm
Tak! Cóż, myślę, że powinno to nikogo dziwić, że trwają już prace w społeczności. )
Więc zamiast marnować czas na własnym modułem tutaj, zacznę pracę nad wersją D6 advcache. Spodziewać łatki.
Poza tym, chociaż jestem wyraźnie późno do partii, ja naprawdę chciałbym usłyszeć narodami pomysły / odpowiedzi do tego rodzaju koncepcji. Byłem bodźcem w tym kierunku ostatnio przez kilka projektów, a także przygotowanie do mojej prezentacji na temat obsługi danych asynchronicznych scalably / bezpiecznie.
Coraz więcej najlepszych praktyk tam na te tematy skorzystaliby ogólną społeczność na pewno.
Wysłany przez robertDouglass 22 lutego 2009 o 9:49 am
Plastry, które są aktualnie w porcie D6 Mike O'Connor miał trochę sporo lustracji w D5. Teraz będzie czas, aby rozpocząć walka im dostać się do D7. Jest to jeden-at-a-time propozycja, a wszystko wymaga cierpliwości rozwoju podstawowej, plus benchmarkingu. może można wkroczyć i pomóc Champion łatek włączenia D7?
Wysłany przez robertDouglass 22 lutego 2009 o 9:51 am
ale buforowanie rzeczy wykonuje ciężką pracę. Musisz być w stanie udowodnić dwie rzeczy: 1), który jest szybszy i 2), że nie łamie nic służąc nieaktualne lub uszkodzone obiekty. Biorąc zatem pod uwagę dzisiejsze standardy kodowania rdzeniowego, wszelkie łatki buforowania rdzeń muszą pochodzić z testów jednostkowych i standardów.