Кто-нибудь использовал HBase, Tornado, Cassandra или HipHop с Drupal? - PullRequest
2 голосов
/ 07 марта 2011

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

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Чтобы ответить на ваш вопрос: пока нет, но ведется значительная работа над 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 и 1 отдельного сервера.

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

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

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

0 голосов
/ 07 марта 2011

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

0 голосов
/ 07 марта 2011

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

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

...