Кто-нибудь использовал HBase, Tornado, Cassandra или HipHop с Drupal?

У меня есть приложение Drupal с очень большим набором записей, почти полмиллиона узлов (475 181). Даже простые объединения становятся слишком трудоемкими (3-10 с), и мы становимся все более зависимыми от Memcached. Интересно, кто-нибудь использовал те же технологии, что Facebook использует с Drupal.

3 ответа

Решение

Чтобы ответить на ваш вопрос: пока нет, но в настоящее время проводится значительная работа над HipHop и базой данных nosql MongoDB. Подробнее об этом ниже.

Как уже упоминали другие, я бы сначала удостоверился, что ваши таблицы базы данных оптимизированы должным образом, проиндексированы и что ваша база данных имеет достаточные ресурсы. Если ваша база данных перегружена до 500 тыс. Строк, вероятно, что-то не так. (У нас более 150 тыс. Узлов, около 600 тыс. Строк в нашей таблице node_revisions, и поскольку в некоторых из наших таблиц cck у узлов есть несколько изображений, превышающих миллион строк.) Я не являюсь экспертом MySQL и смог получить время запроса базы данных ниже по сотне миллисекунд для большинства наших запросов.) Вот шаги, которые я хотел бы предпринять, прежде чем рассматривать переключение на другой механизм БД. (от самого простого к сложному)

  1. искать места, которые вам нужны индексы. Наиболее вероятными местами являются таблицы, в которых есть nid, vid или где много запросов, использующих значение поля в where и любой из столбцов в ваших объединениях. Вот где я получил 80% улучшения. Добавление слишком большого количества индексов может замедлить вставки и удаления, но их очень просто добавлять и удалять.
  2. Подумайте о переходе на INNODB, он почти всегда быстрее, чем стандартный drupal 6 myisam. Это супер легкое изменение.
  3. Убедитесь, что ваш my.cnf настроен правильно. Если вы не изменили его, возможно, это неправильно. Настройки, которые поставляются с большинством дистрибутивов MySQL, очень, очень консервативны и, вероятно, не подходят для вашей среды.
  4. Добавьте RAM, если вы переключились на INNODB, добавление RAM может иметь огромное значение в вашей производительности, даже если MySQL не любит RAM.
  5. Переключитесь на поток печати, если можете. Он исправляет ряд вещей, которые замедляют обычный друпал.
  6. Если у вас все еще есть проблемы, подумайте о том, чтобы отойти от CCK и создать собственные типы контента.
  7. Рассмотрите и оптимизируйте ваши запросы запросов. Представления не очень эффективны, и иногда вы можете добиться больших успехов, изменив запросы.

Вот отличная статья о том, чего можно достичь с помощью drupal и одного отдельного сервера.

Если ничего из этого не работает, вот несколько ссылок на некоторые из новых техник высоких технологий, с которыми люди играют. Самым многообещающим является MongoDB, и если у вас есть ресурсы для его использования в проекте, я вам завидую. (Он все еще немного новый и неполированный для небольшого магазина, которым мы являемся, но я не могу дождаться, чтобы погрузить в него свои зубы.)

друпал и хип хоп

drupal и Mongodb - на сессиях drupalcon SF (в прошлом году) также много говорят

Вы понимаете, что HipHop и Tornado не являются программным обеспечением для баз данных, верно?

Тем не менее, БД почти как ядро ​​CMS, поэтому, когда вам нужно сменить ее на другую систему (ну, на самом деле даже больше, на SQL на NoSQL), вам следует подумать о создании новой / с использованием другой CMS, а не редактировать Drupal- ядро.

У меня нет опыта в этой теме, но https://drupal.stackexchange.com/questions/183/real-world-experience-in-scaling-and-tuning-performance наверняка выглядит полной полезной информации.

Другие вопросы по тегам