LINUX.ORG.RU

Распределенные около-реалтайм системы

 buzzwords, ,


0

2

Добрый день, ЛОР. Заинтересовала тема распределения нагрузки в хайлоад проектах, а мое гугл-фу подводит меня (единственное, что нашел - слайды лицокниги).

Например, я хочу сделать аналог IRC с блекджеком, который сможет держать много миллионов пользователей. Какие проблемы я вижу:

  • хранение и синхронизация присутствия (presence) пользователей
  • хранение и синхронизация логов чата (чтобы при входе на канал клиент получал последние N сообщений)

Собственно, как умные дядьки это делают и что почитать о проектировании таких систем?

Хотеть не вредно, тащем-то.

anonymous
()

Слушай сюда. Берешь значит Erlang. Находишь книгу Erlang Programming или как ее там. Далее, начинаешь хреначить код как сумасшедший. Через 2 недели можно приниматься за этот твой хай-лоад проект. Шанс написать с первого раза продакшен рейди 110 %

anonymous
()
Ответ на: комментарий от anonymous

Ни о каком продакшене речи не идет, интерес академический. И явно есть способы сделать это не только на Erlang'е.

nisdevi
() автор топика

Разве IRC не выдерживает такие нагрузки за счет текущего распределения?

vurdalak ★★★★★
()
Ответ на: комментарий от nisdevi

И явно есть способы сделать это не только на Erlang'е

Но тогда это будет не Ъ-хайлоад с Ъ-масштабируемостью :)

annulen ★★★★★
()

Имхо, слово реалтайм имеет вполне конкретное значение (жесткие ограничения на максимальные задержки которы исчесляются милисекундами и ниже). То что у тебя ни разу не реалтайм. Если чат лаганёт на три секунды то никто не заметит.

true_admin ★★★★★
()

Полностью согласен с комментаторами. Смешно, да.

Самый грустный вопрос для ура-стартаперов:

много миллионов пользователей

Где ты их столько возьмешь?

d_Artagnan ★★
()
Ответ на: комментарий от d_Artagnan

Полностью согласен с комментаторами. Смешно, да.

Может я где-то неверно и выразился, да.

Где ты их столько возьмешь?

Какие такие стартапы? Еще раз повторю: чисто академический интерес. Как конкретно можно построить высоконагруженную систему, которая использует некие общие данные, генерируемые пользователями. С «реалтаймом» я конечно погорячился и подразумевал «низкий latency в пределах 1-2 сек». Пример с IRC, вероятно, не самый удачный, но в нем как раз есть shared data.

А по делу, я так понимаю, ничего нет?

nisdevi
() автор топика
Ответ на: комментарий от nisdevi

Конкретно сделать irc проблем нет: любая из комнат целиком помещается на одном сервере. Поэтому просто размажь их по серверам и всё. Можно даже фронтэнд придумать для прозрачного перекидывания комнат между серверами бэкэнда, но не нужно.

Самый большой «хостинг» irc это freenode и юзеров у него даже не 100 тыщ.

true_admin ★★★★★
()

Если речь об академическом интересе - то раскладывай задачу на подзадачи/проблемы, которые тебе нужно решить. Я вижу это всю канитель в виде распределённой реплицируемой базы данных с фронтендами, к которым в свою очередь клиенты и подключаются. База любая, хоть самописная. Как и что дальше, думаю, догадаешься.

nickleiten ★★★
()
Ответ на: комментарий от nisdevi

Борис, ты не прав

академический

Меня вот тоже _чисто академически_ интересует вопрос: что станет,
если все люди научатся летать как птицы?

Как конкретно можно

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

Для «irc на миллионы пользователей с некими общими данными» (с) - тут, понимаешь совсем другие вопросы, которых ты не задал, важно выяснить, и от ответов на них уже как-то плясать в плане структуры и организации системы.

Тебе тут, кстати, на некоторые незаданные вопросы как раз и пытаются ответить.

d_Artagnan ★★
()
Последнее исправление: d_Artagnan (всего исправлений: 1)

Начни с классики - Таненбаума. Вообще ты задал вопрос, ответом на который занято цело направлении в инженерии. Это все равно, что спросить «пасаны, расскажите как проектами руководить». Задача слишком обширная для топика на форуме.

dizza ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.