Caching mekanisme drupal hosting
Dicatat oleh joshk pada 21 Februari, 2009 at 22:05
Dalam usaha saya yang tidak berkesudahan untuk lebih Drupal Glory, saya telah menghabiskan tahun yang lalu boning sehingga mengenai pelbagai cara untuk meningkatkan isu-isu prestasi laman web dan alamat skala. Hari ini, melakukan beberapa Noodling dengan Amazon EC2 keadaan (dan selebihnya tidak yakin tentang prestasi mentah potensi pelayan pangkalan data master) Saya mempunyai pemikiran yang:
Apa yang diperlukan untuk melanjutkan cache nod statik dalam node_load () luar drupal bootstrap individu?
Seperti hampir semua orang lain, saya telah penyayang berapa banyak memcached membantu prestasi laman web kelajuan. Ia hanya batu-batu, dan semua orang mencari untuk mengurangkan beban pelayan dan halaman kelajuan tindak balas perlu melihat ke dalamnya. Salah satu perkara yang lebih baik tentang hal itu adalah bahawa ia boleh menyimpan dan kembali objek data secara asal, bermakna bukan sahaja anda membiarkan PHP tarik sesuatu daripada memori awan kilat-cepat, anda juga tidak dikenakan atas CPU mempunyai untuk unserialize ( ) rentetan ke dalam objek atau lokasi.
Ini biarlah saya kepada pemikiran saya. Jika anda mahu laman web drupal interaktif secara besar-besaran berskala, anda memerlukan akses bersedia untuk tan nod. Tidak dapat tidak anda akan memukul dinding dengan permintaan log masuk untuk ini daripada pangkalan data anda. Tetapi bagaimana jika kita dapat mengambil rangsangan prestasi yang kita dapat daripada node_load () 's cache statik, dan membuat ia bekerja berterusan di seluruh tapak keseluruhan, bukan hanya untuk satu pageload?
Ini membentangkan pelan tindakan untuk menarik untuk seni bina berprestasi tinggi drupal: menggunakan pangkalan data yang menyimpan data yang berterusan, dengan meja dioptimumkan sekitar berprestasi tinggi pencarian / isihan menggunakan kaedah yang digariskan dalam modul DNA cemerlang David Strauss, dan mengekalkan awan berdasarkan memcached-of sepenuhnya dibina objek nod di atas itu.
Menggariskan kod di sini adalah agak mudah. Modul dengan berat badan yang rendah akan melaksanakan hook_nodeapi () untuk mengendalikan mengosongkan cache nod pada insert dan kemas kini dan mengisinya pada beban. Kemudian pembungkus mudah di sekitar node_load lalai () akan memeriksa berkata cache dahulu sebelum pergi kepada pangkalan data.
Dalam dunia yang sempurna, ini akan dibakar ke dalam teras, dan apa-apa perkara yang mungkin tidak sesuai untuk 7.x. Walau bagaimanapun, bagi pemaju Drupal berpengalaman, jenis menampal diperlukan untuk melaksanakan ini di bawah 6.x akan menjadi lebih mudah daripada perbezaan antara semakan serialization berkaitan w / memcache bawah 5.x. Ia benar-benar boleh menjadi garis pasangan selepas cek statik dalam node_load ().
Sekiranya apa-apa projek muncul dan matang, ia boleh berkembang menjadi keseluruhan objek-cache untuk semua unsur-unsur drupal teras (mis pengguna, terma taksonomi, dan lain-lain). Bersama-sama dengan architeture baru skema (yang meletakkan asas bagi permohonan segmentasi / sharding) dan rangka kerja ujian, berprestasi tinggi objek-cache akan meletakkan Drupal 7 untuk mengambil perusahaan oleh ribut.
Dicatat oleh robertDouglass pada 21 Februari, 2009 at 10:56
yang anda bercakap tentang jenis nod caching yang dilakukan dengan patch dari modul advcache itu? Atau sesuatu yang berbeza? segi taksonomi / kosa kata, komen, dan beberapa perkara lain juga cache dengan advcache. Mike O'Connor sahaja mencatatkan patch ke pelabuhan kepada D6 juga. Semua barangan yang mendapat cache menggunakan API cache standard, jadi ia semua boleh pergi terus ke memcache (sama ada dengan modul memcache atau cacherouter).
Dicatat oleh joshk pada 21 Februari, 2009 at 23:53
Ya! Well, saya rasa ia harus datang tidak mengejutkan bahawa kerja ini sudah dijalankan dalam masyarakat. )
Jadi, daripada membuang masa pada modul saya sendiri di sini, saya akan mula bekerja pada versi D6 daripada advcache. Mengharapkan patch.
Lebih dari itu, walaupun saya jelas lewat untuk parti, saya benar-benar suka mendengar orang idea / jawapan kepada jenis ini konsep. Saya telah mendorong ke arah ini akhir-akhir ini oleh beberapa projek dan juga oleh persediaan untuk persembahan saya pada pengendalian data tak segerak scalably / selamat.
Semakin amalan terbaik di luar sana mengenai topik-topik ini akan memberi manfaat kepada masyarakat secara keseluruhan saya pasti.
Dicatat oleh robertDouglass pada 22 Februari, 2009 at 09:49
Patch yang sedang berada di dalam port D6 dari Mike O'Connor mempunyai beberapa jumlah saksama tapisan dalam D5. Sekarang akan menjadi masa untuk mula memperjuangkan bagi mereka untuk masuk ke dalam D7. Ia adalah satu cadangan satu-at-a-masa, dan memerlukan semua kesabaran teras pembangunan, ditambah penandaarasan. mungkin anda boleh campur tangan dan membantu juara patch untuk D7 kemasukan?
Dicatat oleh robertDouglass pada 22 Februari, 2009 at 09:51
tetapi cache perkara yang memerlukan kerja keras. Anda perlu dapat membuktikan dua perkara: 1) bahawa ia adalah lebih cepat, dan 2) yang ia tidak melanggar apa-apa dengan menyampaikan objek basi atau rosak. Oleh itu, standard diberikan hari ini kerana pengekodan teras, sebarang tampalan caching teras perlu datang dengan ujian unit dan penanda aras.