База данных, технологии, движок и т. Д. Для использования на моем веб-сайте на основе этих требований - PullRequest
1 голос
/ 22 ноября 2010

Мой сайт: Социальная сеть с интенсивным поиском.Таким образом, на высоком уровне находятся компоненты, которые мы видим на Facebook - профили, каналы и т. Д. На низком уровне я подробно изучаю возможности бронирования в отелях по всему миру, ресторанах и т. Д. Так много данных, множество поисков, много аналитики, много операций чтения / записи.

Текущая платформа: 1 База данных MySQL, Php Codeingiter, 1 Выделенный сервер хостинга.Веб-сайт является географическим местоположением, поэтому во всем мире, поддержка нескольких языков и локализация, должны быть в режиме реального времени.Планируйте добавить CDN после запуска.Это изменится, как только я завершу разработку точных технологий для использования.

Вот список соответствующих пунктов:
1. Поиск по сайту: фотографии / видео (имя, описание, люди с тегамив нем), пользовательские теги, комментарии (например, настенные комментарии), посты, блоги, группы, поиск людей по имени / электронной почте.

  1. Поиск почты: поиск темы, содержимого электронной почты, отправителя, вложений.

  2. Хранение основных пользовательских / системных значений: данные пользователя, сведения о системе,схема и т. д.

  3. Хранение и реализация Прямых трансляций: каналы в реальном времени на основе действий пользователя.

  4. Хранение и реализация Аналитика: Разработано собственными силамивеб-аналитика для системной отчетности + пользовательская аналитика для бизнес-страниц.Это включает в себя смесь отчетов / графиков / метрик.Таким образом, это будет пользовательское хранилище данных.

  5. Хранение и внедрение отношений: поиск, поддержание и отображение степени пользователей в отношениях, общих элементах между различными степенями.

  6. Обработка вызовов API, чтобы компании могли отправлять / получать данные, например, владельцы отелей / ресторанов и т. Д.

ВОПРОС - Может кто-нибудь предложить: База данных для использования - типи какой именно бренд (реляционный, документ, значение ключа, график и т. д.), ядро ​​базы данных использовать, если rdms (InnoDB может работать не во всех случаях), добавить серверы / файловые системы / кеш, такие как memcached и т. д.?Должен ли я идти нормализованный или ненормализованный, если RDMS.Или NOSQL полностью.

MySQL работает для некоторых частей, memcache работает для некоторых, lucene работает для некоторых частей, некоторые части, такие как входящие, могут требовать базы данных документов, отношения могут требовать графической базы данных, но я не уверен, какая именно работает для какихиз 7 пунктов выше, и если я могу использовать те же платформы / технологии для большинства из вышеуказанных пунктов.Мое единственное требование - открытый исходный код, поэтому он может быть свободным для использования и работы с PHP.Я не хочу реализовывать отдельную базу данных / набор технологий для поддержки каждого из 7 вышеуказанных требований.Конечно, будучи социальной сетью, производительность и масштабируемость также важны.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2010

Что ж, FourSquare делает большую часть этого с MongoDB , поэтому у него должно быть что-то для этого.

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

Если вы хотите остаться с реляционной моделью, взгляните на VoltDB , он издает какие-то шумы в виде базы данных SQL, которая фактически масштабируется по горизонтали.

Лично я бы начал с комбинации Mongo, Lucene и Hadoop / HBase для обработки данных (аналитика, отношения и т. Д.). Но на самом деле, это было бы просто поводом для игры с новыми блестящими игрушками, я не претендую на большой опыт работы с ними.

Я бы тоже серьезно переосмыслил PHP, но здесь я снова пойду со священными войнами.

0 голосов
/ 23 ноября 2010

Во-первых, если вы думаете, что сайт вырастет до чего-то похожего на другие успешные сайты, которые вы хотите масштабировать по горизонтали, вам понадобится распределенное решение. Что означает какое-то решение NoSQL. Но вам не нужно выбирать одно решение NoSQL, все больше и больше вы видите то, что называется подходом полиглота - несколько дБ для обработки определенных аспектов. Кажется слишком сложным? Вероятно, не по сравнению с попыткой масштабирования плохо подходящей технологии в вашей архитектуре. Поэтому храните объекты в Кассандре или Монгодб, что обеспечивает превосходный масштаб и производительность. Затем подайте данные отношений в базу данных распределенного графа для обработки сетевых ссылок. У вас будет отличное сочетание технологий, которое будет более масштабируемым, чем база данных SQL. Но вам нужно будет самостоятельно рассмотреть технические требования к различным технологиям, слишком много решений, чтобы принять рекомендации по продукту.

0 голосов
/ 22 ноября 2010

Если у вас есть деньги, Oracle поддержит большинство ваших требований.которые действительно сводятся к стандартным RDBMS, плюс CLOB и полнотекстовый поиск.

MS SQLserver также будет поддерживать эти функции, но вы ограничены хостом Windows.

Если вы делаете это с открытым исходным кодом, я бы серьезно посмотрел на PostGres, так как будущее MySql выглядит неопределенным, теперь его владельцем являетсякрупнейший в мире поставщик коммерческих баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...