powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / подскажите по архитектуре высоконагруженной системы
63 сообщений из 63, показаны все 3 страниц
подскажите по архитектуре высоконагруженной системы
    #38129489
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет.

прежде всего, прошу простить меня, если запостил не в тот раздел.

представьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения.
и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов.
в добавок, представьте, что клиентская логика на серверной стороне настолько тяжела, что вы вынуждены запустить ваш сервис на 10ти машинах одновременно, чтоб распределить нагрузку.

при такой архитектуре сервиса, встает логичный вопрос: а как быть с БД?

подскажите, как обычно поступают разработчики столкнувшиеся с подобной ситуацией?

благодарен.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129503
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXman...в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов...

это только Вам ясно. Мужики из Оралка(к примеру) об этом не слышали явно...

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

(круглый)
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129511
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolobok0,

т.е. 24 миллиона инсертов в час, это не много? оО
допустим. но вопрос в другом.

пусть, к примеру, миллиард. ну или сколько-то там, чтоб точно БД не успевала.

вопрос все тот же.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129545
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXman...чтоб точно БД не успевала....

сразу оговорюсь - в бою не был :) я о том, что на мой теоретический взгляд - вижу два вектора решения.
1) кластеризация
2) распределённые БД

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

где то так.
(круглый)
ЗЫ
кстати говоря, сайты с большой нагрузкой - стараются делать как скопище снимков хэтэмээльных страниц (как не странно это кажется на первый взгляд - но это оптимум по скорости). т.е. всякая динамика - это зло в данном случае. тем более обращение к БД.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129582
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolobok0,

kolobok01) кластеризация
2) распределённые БД

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


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

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

это понятно. но в данном вопросе вообще о сайте речь не шла.

касательно динамики, несколько наводящих вопросов ;):
что можно понимать как динамику? к примеру, история сообщений пользователя - это динамика? история времени логина/логаута, это тоже динамика? информация о том, сообщение пользователя было ответом на другое сообщение, или просто сообщение - тоже динамика?

спасибо.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129634
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXman...в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов....
при такой архитектуре сервиса, встает логичный вопрос: а как быть с БД?Если запись не предусматривает никакой постобработки, то складывать в простой текстовый файл, который периодически пакетно заливать в БД.
Например:
Тестовый стенд - виртуальная машина на удаленном сервере, 2Г памяти. Подробностей про процессор и дисковую подсистему не помню.
БДselect * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

5 rows selected.SQL*LoaderTotal logical records skipped: 0
Total logical records read: 1098526
Total logical records rejected: 0
Total logical records discarded: 0
Total stream buffers loaded by SQL*Loader main thread: 231
Total stream buffers loaded by SQL*Loader load thread: 0

Run began on Thu Mar 29 12:51:57 2012
Run ended on Thu Mar 29 12:52:22 2012

Elapsed time was: 00:00:25.24
CPU time was: 00:00:03.15
Большая часть времени ушла на прокачку данных по сети. Локально все существенно быстрее.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129642
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99Если запись не предусматривает никакой постобработки, то складывать в простой текстовый файл, который периодически пакетно заливать в БД.
постобработки никакой нет.

но тут у меня еще вопрос: какой смысл складировать данные и потом скопом их вливать? ведь в таком случае мы положим БД полностью намертво. не логичней ли распределить кол-во инсертов по времени, или таки инсертить сразу по приходу?

PL99Elapsed time was: 00:00:25.24
т.е. это 25 секунд?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129662
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanно тут у меня еще вопрос: какой смысл складировать данные и потом скопом их вливать? ведь в таком случае мы положим БД полностью намертво.PL99периодически пакетно заливать
niXmanне логичней ли распределить кол-во инсертов по времени, или таки инсертить сразу по приходу?Транзакционная вставка не обеспечит необходимой производительности.
niXmanPL99Elapsed time was: 00:00:25.24
т.е. это 25 секунд?Да.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129664
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99периодически пакетно заливать
для ораклового лоадера с включенной опцией DIRECT
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129682
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99Транзакционная вставка не обеспечит необходимой производительности.
какой смысл, в данном контексте, имеет слово "транзакционная"? и откуда это слово вообще тут взялось? зачем тут транзакции, поясните?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38129685
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99периодически пакетно заливать
а почему не инсертить сразу, по приходу? в чем смысл откладывать?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130198
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
niXmanу вас, ~200000 юзеров онлайн
Вот это и есть самое узкое место. Трехзвенка.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130205
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модniXmanу вас, ~200000 юзеров онлайн
Вот это и есть самое узкое место. Трехзвенка.
что такое "Трехзвенка" ?
а по сабжу есть что сказать?

и вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130211
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanа почему не инсертить сразу, по приходу? в чем смысл откладывать?Потому что пакетом быстрее.

Хотя тоже не6 решает проблемы - ведь вы скажете (ну а представим такую систему, для которой и пакетной обработки не хватит) :-)

Нужно ставить реальные задачи, проектировать систему под конкретьную прогнозируемую нагрузку. Полследовательность при увеличении нагрузки очевидна - оптимизация, кеширование и пакетная обработка, распределение нагрузки на много серверов.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130217
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanи вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался?Дык критерий то какой? Первым постом вы описали слабо нагруженную систему. Я работал тоже только со слабонагруженными - всего раз в 30 больше нагрузка, чем вы описали. Что есть "сильно нагруженная"?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130224
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgПотому что пакетом быстрее.
что значит "пакетом"? что это за режим такой? и почему он быстрее?
alexeyvgХотя тоже не6 решает проблемы - ведь вы скажете
скажу, потому что в топике вопрос:
niXmanа как быть с БД?
alexeyvgЧто есть "сильно нагруженная"?
система, которая не сможет работать на одной физической PC.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130234
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanPL99периодически пакетно заливать
а почему не инсертить сразу, по приходу? в чем смысл откладывать?А почему бы не почитать документацию ? Или соответствующий раздел для вашей БД.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130261
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99, для того чтоб что-то читать, нужно знать что искать.
прочел. понял.

не понял одного, как пакетный режим позволит что-то ускорить в том случае, если "у БД не бывает выходных"?
т.е. к примеру, нагрузка на БД приблизительно равномерно распределена по времени. не инсертя данные сразу в БД, мы лишь оттягиваем неизбежное. это первое.
второе - я так понимаю, что откладывание инсерта может иметь смысл(гипотетически. хотя я в этом сомневаюсь.) только в том случае, когда откладываемые данные не нужны сразу по приходу. т.е. к примеру, через час после прихода.

в общем, тема топика все таинственней, и полна загадок.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130280
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanне понял одного, как пакетный режим позволит что-то ускорить в том случае, если "у БД не бывает выходных"?
т.е. к примеру, нагрузка на БД приблизительно равномерно распределена по времени. не инсертя данные сразу в БД, мы лишь оттягиваем неизбежное. это первое.Ну если он быстрее, то почему не будет ускорения???

Допустим, вставка одной записи - 1 мс, вставка 1000000 записей пакетом - 10с
Получаем выйгрыш в 100 раз, если будем копить записи и вставлять пакетами по милиону.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130285
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanвторое - я так понимаю, что откладывание инсерта может иметь смысл(гипотетически. хотя я в этом сомневаюсь.) только в том случае, когда откладываемые данные не нужны сразу по приходу. т.е. к примеру, через час после прихода.Ну да, это проблема. Но во первых, не раз в час, а раз в секунду, или раз в минуту - как спроектируете. Во вторых, это решается сервером приложений - чтением из кеша.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130290
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanalexeyvgЧто есть "сильно нагруженная"?
система, которая не сможет работать на одной физической PC.А вот какой критерий :-)

Так вы ответ уже сами сказали, в чём вопрос тогда???
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130293
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, вот...начинает проясняться.. спасибо Вам.

оффтопный вопрос, позвольте.
подскажите, где можно почитать про "пакетный режим" для MySQL/Postgre ?
ну, или, хотя бы, по каким словам гуглить?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130297
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgТак вы ответ уже сами сказали, в чём вопрос тогда?
вопрос в том, каким образом разделяют БД на несколько физических машин так, чтоб в них были идентичные данные? как синхронизируют данные?

т.е., решение в лоб - чтоб каждая машина инсертила сразу и во все остальные машины. но это, как мне кажется, слишком "деревянный" способ. или оно так и решается?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130353
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanподскажите, где можно почитать про "пакетный режим" для MySQL/Postgre ?По MySQL/Postgre я не специалист. Вы создайте тему с конкретным вопросом в форуме по этим СУБД.

niXmanalexeyvgТак вы ответ уже сами сказали, в чём вопрос тогда?
вопрос в том, каким образом разделяют БД на несколько физических машин так, чтоб в них были идентичные данные? как синхронизируют данные?

т.е., решение в лоб - чтоб каждая машина инсертила сразу и во все остальные машины. но это, как мне кажется, слишком "деревянный" способ. или оно так и решается?По разному, зависит от конкретных требований бизнес-логики. Можно напрмер вообще не делать доступными данные на всех машинах. Допустим, все кредитные карточки мира и совершаемые операции - это некая гигантская база данных, но вместе хранить данные не обязательно, достаточно, что бы счета и карточки одного человека были на одном сервере.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130376
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanи того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов.

Да почему же... Не так и много.

niXmanпри такой архитектуре сервиса, встает логичным вопрос: а как быть с БД?

подскажите, как обычно поступают разработчики столкнувшиеся с подобной ситуацией?



шардинг, партицирование бд по, скажем, ветке форума.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130383
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmankolobok0,

т.е. 24 миллиона инсертов в час, это не много? оО
допустим. но вопрос в другом.

пусть, к примеру, миллиард. ну или сколько-то там, чтоб точно БД не успевала.

вопрос все тот же.
Ты еще поди найди этот миллиард...
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130390
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор, забудь по пакетный режим загрузки.
Пакетный режим в данном случае неприменим.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130407
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanт.е. 24 миллиона инсертов в час, это не много? оО
допустим. но вопрос в другом.
В школе каникулы?

Вопрос в другом. Как эти данные попадают в БД?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130419
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivшардинг, партицирование бд по, скажем, ветке форума.
вот! этого-то я и не знал.
нагуглил это . вроде то что нужно.
шардинг, я так понимаю, это мой случай.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130423
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivзабудь по пакетный режим загрузки.
поясни те плиз, почему?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130426
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alibek B.В школе каникулы?
тебе виднее.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130566
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanпредставьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения.
и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов.

Зачем вообще хранить сообщения из чата? Нужно получать от одного и рассылать заинтересованным или всем в зависимости от ситуации. СУБД не нужна, Node.js в руки и будет счастье.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130577
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВЗачем вообще хранить сообщения из чата?
ситуация гипотетическая, жо)

по сабжу есть что сказать?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130785
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanMasterZivзабудь по пакетный режим загрузки.
поясни те плиз, почему?

Объяснять долго, в кратце -- ты же не хочешь, чтобы
из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ?
Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же
попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей).
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130788
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanMasterZivшардинг, партицирование бд по, скажем, ветке форума.
вот! этого-то я и не знал.
нагуглил это . вроде то что нужно.
шардинг, я так понимаю, это мой случай.

Да, вроде бы похожая на хорошую статься.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130789
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
..статья..
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130790
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130793
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivОбъяснять долго, в кратце -- ты же не хочешь, чтобы
из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ?
Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же
попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей).
это понятно.
думал, есть еще какие-то аргументы.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38130801
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВ, спасибо.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131008
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
niXmanчто такое "Трехзвенка" ?
и вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался?
Рассуждать про высоконагруженные системы и не знать их азбуки ?
"Трехзвенка": клиент - сервер(ы) приложений - сервер БД.
Ваши 200000 клиентов общаются только с серверами приложений, которых м.б. сколько угодно
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131012
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модРассуждать про высоконагруженные системы и не знать их азбуки ?
я же только учусь)

понял, спасибо.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131098
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanпредставьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн.
NoSql, если дело касается БД, а тут есть блог (правда в архиве, настоящий сайт удален, почему-то)
http://abrdev.com/?cat=126 " target="_blank"> http://web.archive.org/web/20120126032612/http://abrdev.com/?cat=126
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131147
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
niXmanя же только учусь)
Ни один сервер БД не поддержит 200000 одновременных коннектов. Поэтому коннектятся к БД сервера приложений в количестве ~ 10**3. А сервера приложений обслуживают в очередь всех клиентов. Масшабируется за счет увеличения этих серверов. Ессно бизнес логика тоже на серверах приложений, в БД нельзя. Все довольно сложно.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131166
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод, понятно, что клиенты не к БД коннектятся)
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131182
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если про инсерты, то наверно внутренние системы пиарятся :)
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131343
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXman,

в журнале ][акер начиная с №7за 2012г серия из 6 статей "Учебник по высоким нагрузкам",
где реальные парни конкретно рассматривают тему.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131371
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivniXmanпропущено...

поясни те плиз, почему?

Объяснять долго, в кратце -- ты же не хочешь, чтобы
из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ?
Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же
попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей).Должен заметить, что аргумент не выдерживает критики. Утилиты-загрузчики обычно понимают параметр типа -m maxerrors или ERRORS (errors to allow)
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131373
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11в журнале ][акер ...<sarcasm>Очень авторитетный источник</sarcasm>
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38131742
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
niXman_мод, понятно, что клиенты не к БД коннектятся)
Основная проблема - сохранить транзакцию клиента
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132164
tumblerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niXmanи того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов.

На днях гоняли PostgreSQL. Была задача как можно быстрее залить данне для дальнейшей обработки.

Тестовая табличка из 135 полей. Файл текстовый. Индексы по 10 полям.

На ноуте CoreDuo 9400 2 ядра, ноутбучный винт 5400, Win7Pro 64.
Дефолтная установка postgre 9.2, т.е. тупо запустили инсталятор и ничего не тюнили.

Тестовых записей 1 000 000. Загрузка из файла чуть больше минуты.

Так что на нормальном железе, 400 000 инсертов это не так уж и много.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132260
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>29 янв 13, 18:44 [13846663] niXman,
>представьте ситуацию, ...
Посмотри здесь , может что и сгодится, как подход, и предложенные журналы Хакер полистай,- академия, полезно, я так с удовольствием.

С уважением, Владимир.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132322
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев, почитаю. спасибо.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132413
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tumblerrr,

очень много это если генерируются 50-100 лимонов записей и это воще то махонькая часть задачи
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132436
niXman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прощения за оффтоп.

ВМоисеев, скажите, где-то на CVS исходники доступны? кириллица в именах идентификаторов все еще присутствует?
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132445
tumblerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRostumblerrr,

очень много это если генерируются 50-100 лимонов записей и это воще то махонькая часть задачи

Да это просто для теста был лям.

А так там 2.5-3.0 ляма записей, примерно каждые 15 мин падают.
Надо их импортнуть в БД и обработать.
В общем не самая супернагруженная задача, но тем не менее работа дефолтного постгреса на ней показательна.
А ведь его еще по тюнить можно)
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38132490
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>сегодня, 14:40 [13857225] niXman,
>прошу прощения ...

Исходники проектов лежат на gotdotnet.files
//-- Remoting.rar
http://www.gotdotnet.ru/files/407/
//-- Сервер приложений
http://www.gotdotnet.ru/files/367/

С уважением, Владимир
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38133173
niXmanпривет.

прежде всего, прошу простить меня, если запостил не в тот раздел.

представьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения.
и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов.
6666 вставок в секунду? Такие объемы спокойно пережевывает и Oracle, и MySQL. А всякие berkeleydb или leveldb жуют и по 240к вставок в секунду.

Ну умеешь настраивать, пупс.


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

при такой архитектуре сервиса, встает логичный вопрос: а как быть с БД?


Быть? Очень просто. Дать денег специалистам по БД. Если они конечно есть. Деньги. На специалистов.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38176807
Peter F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
niXman,

Интересно, что никто не упомянул о распределеных NoSQL системах хранения (хотя учитывая название форума ничего удивительного в этом нет :) ), которые как раз и появились на свет во многом потому , что традиционные SQL базы данных не обеспечивали нужной производительности для таких систем как Google (факт. родоначальник направления с BiGtable технологией), Amazon (их разработка Dynamo используется самим Амазоном для распределенного хранения информации о продажах - объемы данных сами можете представить). Из ниболее популярных опен-сорсов - Cassandra (если не ошибаюсь изначально была разработана в Facebook) и HBase/Hadoop.

При чем NoSQL означает Not Only SQL. Очень часто эти системы используются как промежуточное хранилище данных обеспечивающее очень быструю запись (за счет чего - отдельная тема, но кратко - данные пишутся в файлы последовательно и периодически отдельным проходом происходит compaction ), а потом данные анализируются, агрегируются и т.д. и пишутся в традиционные СУБД для хранения и обработки традиционными системами , написанными с использованием SQL.
Хотя все больше новых систем проектируется сразу с использованием NoSQL решений.

Основное преимущество - масштабируемость этих систем. Я хорошо понимаю, что на этом форуме собрались адепты и "зубры" SQL технологии , но я думаю вряд ли кто-то может привести пример кластера традиционной SQL СУБД c тысячами серверов и линейным графиком масштабируемости. Также эти системы как правило обеспечивают автоматический data partitioning , re-partitioning в случае потери нода или добавлении нодов в кластер, дублирование информации для failover , распределение нагрузки и т.д.

У каждой технологии ( SQL и NoSQL) есть свои сильные и слабые стороны и области применения. Поэтому надо выбирать исходя из требований, возможного развития системы в будущем, затрат не только на разработку, но и поддержку и т.д.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38176814
Peter F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Peter FИнтересно, что никто не упомянул о распределеных NoSQL системах хранения

Корректировка - уроминание о NoSQL было уже ранее в ответах.

Еще часто ставят In-memory Cache между базой данных и логикой примема/обработки запросов. Системы кеширования могут сливать данные в базу синхроно или асинхроно с указаной задержкой. Я использовал это для того чтобы фактически организовать буффер в памяти для накопления данных и потом записи их в базу "пакетами". Если установить кластер - то потери данных не произрйдет , так как рапределенный кеш реплицирует данные на другой нод. Конкретно систему кеширования я использовал - опен сорс Hazelcast для Джава
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38176890
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peter Fно я думаю вряд ли кто-то может привести пример кластера традиционной SQL СУБД c тысячами серверов и линейным графиком масштабируемости.:) Вот прямо сейчас изучаю проект в котором MySQL и шардинг ровно (в текущий момент) на 1000 серверов. Скромная платежная система.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38177662
IgorK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот всегда почему-то приводят в пример то Амазон, но Фейсбук то еще что-то. Есть в этих системах одно НО, что позволяет "размазывать данные" по куче серверов.
Это НО называется ДАННЫЕ. Фича этих данных, что они НЕ СВЯЗАНЫ МЕЖДУ СОБОЙ!!! Поясню - системе абсолютно все равно что данные Пети лежат на одном сервере, а данные Васи на другом! Платежные системы - то же самое! Транзакции обращаются к 1 - 2 счетам, найти которые не составляет проблемы.
Попробуйте размазать данные бухучета и получить потом баланс в реальном времени? Никакой шардинг тут не работает! Поэтому и строят кластера Ораклячие - чтобы иметь доступ ко ВСЕМ данным.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38177709
Peter F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorKВот всегда почему-то приводят в пример то Амазон, но Фейсбук то еще что-то. Есть в этих системах одно НО, что позволяет "размазывать данные" по куче серверов.
...
Попробуйте размазать данные бухучета и получить потом баланс в реальном времени? Никакой шардинг тут не работает! Поэтому и строят кластера Ораклячие - чтобы иметь доступ ко ВСЕМ данным.

Согласен, потому сразу и написал - что все зависит от конкретной задачи и выбор технологий зависит от многих факторов.
Но даже в случае Фейсбук - не все так просто как кажется , у них-то данные как раз очень взаимосвязаны - по сути это один большой граф , вот сильно упрощенный пример:
- сообщение от пользователя привязано к пользователю , который его написал
- этот пользователь связан с другими пользователями "дружеско-семейными" связями
- у тех польхователей куча своих сообщений, статусов, предпочтений (I like it)
- и т.д.

И они предоставляют свой Graph API чтобы ходить/искать по этим связям и "выворачивать" данные как угодно. И этот API используется рекламными "монстрами" чтобы проводить рекламные компании и в реальном времени отслеживать эффективность, смену предпочтений и т.д.

Но если мы вспомним с чего началась эта дискуссия - это быстрая запись в базу большого объема информации. Вот например ссылка
http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

В которой приводятся результаты тестирования Кассандры Нетфликсом (один из крупнейших провайдеров видео через Инет в Штатах)
Тестировали в Амазон облаке, получили 1.1 млн записей в секунду с репликацией в три зоны, итого 3.3 млн. записей в секунду.
В статье есть график масштабируемости - фактически линейно вплоть до 350 серверов.
К сожалению статья на англ. но наверное можно автоматом приличный перевод получить в Хроме или еще как.

Это один из примеров, таких бенчмарк можно много накопать.

Опять же, это как альтернативная точка зрения. Даже если традиционная технология лучше подходит под ваши требования - всегда полезно узнать что-то новое, это может натолкнуть на какие-то свежие или оригинальные идеи или подходы и применить их даже в рамках традиционной SQL или любой другой платформы.
...
Рейтинг: 0 / 0
подскажите по архитектуре высоконагруженной системы
    #38182237
Peter Fсвежие или оригинальные идеи или подходы и применить их даже в рамках традиционной SQL или любой другой платформы.

И что? У тебя есть миллионы пользователей или хотя-бы три сервера (не виртуальных) c сотню роботов-генераторов трафика где можно попробовать хоть что-то применить?
...
Рейтинг: 0 / 0
63 сообщений из 63, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / подскажите по архитектуре высоконагруженной системы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]