За последние 24 часа нас посетили 18843 программиста и 1686 роботов. Сейчас ищут 835 программистов ...

Хранение данных

Тема в разделе "MySQL", создана пользователем Epro, 10 фев 2010.

  1. Epro

    Epro Guest

    Состоялся тут вопрос о хранение информации в базе, но состыковка в том, что к примеру взять систему обмена сообщениями между пользователями. Если посмотреть на то, что есть некоторые любители активно попереписываться, то вопрос стоит боком о распределение данных.
    Разбивку на несколько серверов, в голове у меня не стыкуется.
    К примеру есть вывод сообщений списком, то коннект к двум серверам терпимо, а вот если 5-ть серверов?
    То тогда идут мысли о репликациях и кластеризации базы, но как сделать, вопрос стоит в этом.
    Так как может быть в таблице и 200кк записей, а это и места не мало...
    Может есть какие либо вариации другие?
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Количество пользователей?
    Количество активных пользователей?
    Количество сообщений в сутки?
    Средний объем сообщения?

    Пока этого нет - говорить не о чем.
     
  3. Epro

    Epro Guest

    Количество пользователей ~ 200 000
    Количество активных пользователей? ~ 70 000
    Количество сообщений в сутки? ~ 1кк
    Средний объем сообщения ~ от 1кб

    с каждым днем больше естественно...стоит лимит на сообщения пока что, но это слишком
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    в текстовые файлы. По каталогам. Инициант/Реципиент/дата/сообщения
    Это для истории.
    Для поиска Sphinx.

    База то зачем?
     
  5. Epro

    Epro Guest

    Возьмем к примеру фэйсбук, там все на базах как я знаю и им это не мешает...
     
  6. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Там не все на базах. Но в любом случае - смысл хранить эту информацию в базах?
    Она отлично лежит в файлах.
    При этом сплитится по пользователям на произвольное число серверов. Без бубна.

    При текущей активности всю дневную переписку всех пользователей вообще можно хранить в мемкеше или просто в памяти.

    В базе можно держать списки пользователей и контакт-листы.
     
  7. Epro

    Epro Guest

    Вообще я спрашивал про базу, а не как хранить это на файлах.
    А по другой пример реализации, я спрашивал тоже по mysql.
    Так что Ваши мессаги я считаю оффтопом, ошиблись разделом.
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Epro
    Если Вы врете, то это ваши личные проблемы.
    Я полагаю, что рунетовские проекты генерирующие 1ГБ контента в сутки исключительно за счет ввода текста пользователями - можно пересчитать по пальцам. А таких чьи разработчики не знают с какой стороны подойти к репликации, пожалуй нет вовсе.

    Что касается репликации, то -
    Репликация MySQL
    Что из этого оказалось
    неподъемным для Вас?
     
  9. Epro

    Epro Guest

    Мне кажется это, уже не Ваши проблемы.
    Моё мнение неподъемным для ВАС писать по клавиатуре, раз Вы не можете просто ответить в данной ветке. Вопрос был задан по mysql, Вы мне про файлы. Так что не нужно лезть в чужой огород.
    Я в силах сделать то, что мне нужно, НО услышать мнение со стороны, тоже порой не мешает

    Я задал конкретный вопрос, а вы разводите тут дискуссии. Смените тематику форума, данная тема для Вас слишком серьезна.
     
  10. Лол школьнеки в моих чатеках? Нет пути!
     
  11. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Вы случаем не администратор одноклассников.ру? xD
     
  12. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    ога, я тоже в шоке
     
  13. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Вроде mysql cluster ставишь и он сам все разруливает. Так же для сообщений можно использовать партирование.

    P.s. У человека не обязательно проект доступен для инета. Я знаю, что некоторые организации переводят внутренние десктопные приложения на веб. Слышал, что для SAP делают веб-интерфейсы. Поэтому, неудивительно, что какой-нибудь мегафон делает веб-интерфейс. И совсем не удивительно, что там будет 70 тысяч пользователей онлайн.
     
  14. Kreker, мускульный фуллтекст поиск работает только для обычных myisam таблиц.
     
  15. Kreker, работники крупных компаний не задают такие элементарные вопросы на форумах.
     
  16. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Никогда не видел поиск по личным сообщениям...

    Все бывает...
     
  17. Kreker, проблема еще в том, что ресурсу с большими обьемами кластеризация понадобится ГОРАЗДО РАНЬШЕ для других частей системы, чем для системы обмена сообщений пользовователей.

    Поэтому Simpliest прав, что-то из сказанного - ложь.
     
  18. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    myql cluster не спасет на таких объемах. захлебнется.

    я бы смотрел в сторону маленьких серверков и простого шардинга. хранить все в одном месте - заипаться. наделал бы каналов. распределил бы их и ни жужжал.


    суть в том:

    идет разговор. под него выделяется канал. канал мапится на сервак и там живет. а сока серваков воткнуть - зависит от нарузки. мало мощности. втыкаем сервер. мапим балансер и вуаля. все довольны.

    все упрется в мапинг канала/сервера, но тут много вариантов
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а скриптец что все это рулил - будет совсем маленький. =)
     
  20. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    440Hz
    Ммм, и как разрулить шардинг в случае персистентности истории?
    Я не работал с MySQL в этом направлении, но чисто логически, как мы будем делать выборки?
    Сегодня нас с Петей балансером кинуло туда, а Васю с Вовой на другой сервер, завтра наоборот - историю рамазало по серверам.

    В случае с тем же партиционированием по дате там можно более менее построить что,где. И в зависимости от этого выбирать к какому серверу делать запрос.
    А в случае когда мы просто равномерно размазываем данные по куче серверов - непонятно...

    Или я что-то не понимаю(не знаю)?
     
  21. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    номер_серера = fun(А,Б); причем fum(Б,А) может быть на другом сервере.

    где А и Б говорящие, т.е. всегда один и тот же сервер. выборки БД соответственно тоже с них, а собрать на клиенте данные с 2-х серверов и показать. говно вопрос.
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    встает вопрос равномерного размазывания, но это совсем другая история и рассказывать ее должен балансер