|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
привет. прежде всего, прошу простить меня, если запостил не в тот раздел. представьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения. и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов. в добавок, представьте, что клиентская логика на серверной стороне настолько тяжела, что вы вынуждены запустить ваш сервис на 10ти машинах одновременно, чтоб распределить нагрузку. при такой архитектуре сервиса, встает логичный вопрос: а как быть с БД? подскажите, как обычно поступают разработчики столкнувшиеся с подобной ситуацией? благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 18:44 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXman...в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов... это только Вам ясно. Мужики из Оралка(к примеру) об этом не слышали явно... ышо в том веке у нас на допечатной подготовке была база в которую сваливалась вся телетайпная информационная инфа в одну из баз.. и ничего, Wire обзывалась кстати... даже шустренько так обслуживала и другие бэк-граундные запросы... я так думаю, что за более 10 лет всё ышо дальше ушло вперёд... так, что.... вэлкам в реальность... (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 18:51 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
kolobok0, т.е. 24 миллиона инсертов в час, это не много? оО допустим. но вопрос в другом. пусть, к примеру, миллиард. ну или сколько-то там, чтоб точно БД не успевала. вопрос все тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 18:54 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXman...чтоб точно БД не успевала.... сразу оговорюсь - в бою не был :) я о том, что на мой теоретический взгляд - вижу два вектора решения. 1) кластеризация 2) распределённые БД кластеризация - тут, скорее всего, больше технический аспект. распределённые - тут, кмк, больше софтовый. (вынос высоконагруженных частей БД отдельно, линки на другие бд и подобные вещи). где то так. (круглый) ЗЫ кстати говоря, сайты с большой нагрузкой - стараются делать как скопище снимков хэтэмээльных страниц (как не странно это кажется на первый взгляд - но это оптимум по скорости). т.е. всякая динамика - это зло в данном случае. тем более обращение к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 19:16 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
kolobok0, kolobok01) кластеризация 2) распределённые БД кластеризация - тут, скорее всего, больше технический аспект. распределённые - тут, кмк, больше софтовый. (вынос высоконагруженных частей БД отдельно, линки на другие бд и подобные вещи). слишком общий ответ... подумаю, и постараюсь конкретизировать... kolobok0кстати говоря, сайты с большой нагрузкой - стараются делать как скопище снимков хэтэмээльных страниц (как не странно это кажется на первый взгляд - но это оптимум по скорости). т.е. всякая динамика - это зло в данном случае это понятно. но в данном вопросе вообще о сайте речь не шла. касательно динамики, несколько наводящих вопросов ;): что можно понимать как динамику? к примеру, история сообщений пользователя - это динамика? история времени логина/логаута, это тоже динамика? информация о том, сообщение пользователя было ответом на другое сообщение, или просто сообщение - тоже динамика? спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 19:45 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
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 Большая часть времени ушла на прокачку данных по сети. Локально все существенно быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 20:33 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
PL99Если запись не предусматривает никакой постобработки, то складывать в простой текстовый файл, который периодически пакетно заливать в БД. постобработки никакой нет. но тут у меня еще вопрос: какой смысл складировать данные и потом скопом их вливать? ведь в таком случае мы положим БД полностью намертво. не логичней ли распределить кол-во инсертов по времени, или таки инсертить сразу по приходу? PL99Elapsed time was: 00:00:25.24 т.е. это 25 секунд? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 20:37 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanно тут у меня еще вопрос: какой смысл складировать данные и потом скопом их вливать? ведь в таком случае мы положим БД полностью намертво.PL99периодически пакетно заливать niXmanне логичней ли распределить кол-во инсертов по времени, или таки инсертить сразу по приходу?Транзакционная вставка не обеспечит необходимой производительности. niXmanPL99Elapsed time was: 00:00:25.24 т.е. это 25 секунд?Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 20:55 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
PL99периодически пакетно заливать для ораклового лоадера с включенной опцией DIRECT ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 20:57 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
PL99Транзакционная вставка не обеспечит необходимой производительности. какой смысл, в данном контексте, имеет слово "транзакционная"? и откуда это слово вообще тут взялось? зачем тут транзакции, поясните? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 21:09 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
PL99периодически пакетно заливать а почему не инсертить сразу, по приходу? в чем смысл откладывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 21:12 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanу вас, ~200000 юзеров онлайн Вот это и есть самое узкое место. Трехзвенка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:01 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
_модniXmanу вас, ~200000 юзеров онлайн Вот это и есть самое узкое место. Трехзвенка. что такое "Трехзвенка" ? а по сабжу есть что сказать? и вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:05 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanа почему не инсертить сразу, по приходу? в чем смысл откладывать?Потому что пакетом быстрее. Хотя тоже не6 решает проблемы - ведь вы скажете (ну а представим такую систему, для которой и пакетной обработки не хватит) :-) Нужно ставить реальные задачи, проектировать систему под конкретьную прогнозируемую нагрузку. Полследовательность при увеличении нагрузки очевидна - оптимизация, кеширование и пакетная обработка, распределение нагрузки на много серверов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:09 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanи вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался?Дык критерий то какой? Первым постом вы описали слабо нагруженную систему. Я работал тоже только со слабонагруженными - всего раз в 30 больше нагрузка, чем вы описали. Что есть "сильно нагруженная"? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:11 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
alexeyvgПотому что пакетом быстрее. что значит "пакетом"? что это за режим такой? и почему он быстрее? alexeyvgХотя тоже не6 решает проблемы - ведь вы скажете скажу, потому что в топике вопрос: niXmanа как быть с БД? alexeyvgЧто есть "сильно нагруженная"? система, которая не сможет работать на одной физической PC. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:17 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanPL99периодически пакетно заливать а почему не инсертить сразу, по приходу? в чем смысл откладывать?А почему бы не почитать документацию ? Или соответствующий раздел для вашей БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:19 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
PL99, для того чтоб что-то читать, нужно знать что искать. прочел. понял. не понял одного, как пакетный режим позволит что-то ускорить в том случае, если "у БД не бывает выходных"? т.е. к примеру, нагрузка на БД приблизительно равномерно распределена по времени. не инсертя данные сразу в БД, мы лишь оттягиваем неизбежное. это первое. второе - я так понимаю, что откладывание инсерта может иметь смысл(гипотетически. хотя я в этом сомневаюсь.) только в том случае, когда откладываемые данные не нужны сразу по приходу. т.е. к примеру, через час после прихода. в общем, тема топика все таинственней, и полна загадок. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:31 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanне понял одного, как пакетный режим позволит что-то ускорить в том случае, если "у БД не бывает выходных"? т.е. к примеру, нагрузка на БД приблизительно равномерно распределена по времени. не инсертя данные сразу в БД, мы лишь оттягиваем неизбежное. это первое.Ну если он быстрее, то почему не будет ускорения??? Допустим, вставка одной записи - 1 мс, вставка 1000000 записей пакетом - 10с Получаем выйгрыш в 100 раз, если будем копить записи и вставлять пакетами по милиону. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:35 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanвторое - я так понимаю, что откладывание инсерта может иметь смысл(гипотетически. хотя я в этом сомневаюсь.) только в том случае, когда откладываемые данные не нужны сразу по приходу. т.е. к примеру, через час после прихода.Ну да, это проблема. Но во первых, не раз в час, а раз в секунду, или раз в минуту - как спроектируете. Во вторых, это решается сервером приложений - чтением из кеша. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:37 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanalexeyvgЧто есть "сильно нагруженная"? система, которая не сможет работать на одной физической PC.А вот какой критерий :-) Так вы ответ уже сами сказали, в чём вопрос тогда??? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:39 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
alexeyvg, вот...начинает проясняться.. спасибо Вам. оффтопный вопрос, позвольте. подскажите, где можно почитать про "пакетный режим" для MySQL/Postgre ? ну, или, хотя бы, по каким словам гуглить? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:41 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
alexeyvgТак вы ответ уже сами сказали, в чём вопрос тогда? вопрос в том, каким образом разделяют БД на несколько физических машин так, чтоб в них были идентичные данные? как синхронизируют данные? т.е., решение в лоб - чтоб каждая машина инсертила сразу и во все остальные машины. но это, как мне кажется, слишком "деревянный" способ. или оно так и решается? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 11:44 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanподскажите, где можно почитать про "пакетный режим" для MySQL/Postgre ?По MySQL/Postgre я не специалист. Вы создайте тему с конкретным вопросом в форуме по этим СУБД. niXmanalexeyvgТак вы ответ уже сами сказали, в чём вопрос тогда? вопрос в том, каким образом разделяют БД на несколько физических машин так, чтоб в них были идентичные данные? как синхронизируют данные? т.е., решение в лоб - чтоб каждая машина инсертила сразу и во все остальные машины. но это, как мне кажется, слишком "деревянный" способ. или оно так и решается?По разному, зависит от конкретных требований бизнес-логики. Можно напрмер вообще не делать доступными данные на всех машинах. Допустим, все кредитные карточки мира и совершаемые операции - это некая гигантская база данных, но вместе хранить данные не обязательно, достаточно, что бы счета и карточки одного человека были на одном сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:16 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanи того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов. Да почему же... Не так и много. niXmanпри такой архитектуре сервиса, встает логичным вопрос: а как быть с БД? подскажите, как обычно поступают разработчики столкнувшиеся с подобной ситуацией? шардинг, партицирование бд по, скажем, ветке форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:27 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmankolobok0, т.е. 24 миллиона инсертов в час, это не много? оО допустим. но вопрос в другом. пусть, к примеру, миллиард. ну или сколько-то там, чтоб точно БД не успевала. вопрос все тот же. Ты еще поди найди этот миллиард... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:29 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Автор, забудь по пакетный режим загрузки. Пакетный режим в данном случае неприменим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:32 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanт.е. 24 миллиона инсертов в час, это не много? оО допустим. но вопрос в другом. В школе каникулы? Вопрос в другом. Как эти данные попадают в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:42 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
MasterZivшардинг, партицирование бд по, скажем, ветке форума. вот! этого-то я и не знал. нагуглил это . вроде то что нужно. шардинг, я так понимаю, это мой случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:48 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
MasterZivзабудь по пакетный режим загрузки. поясни те плиз, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:49 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Alibek B.В школе каникулы? тебе виднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 12:50 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanпредставьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения. и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов. Зачем вообще хранить сообщения из чата? Нужно получать от одного и рассылать заинтересованным или всем в зависимости от ситуации. СУБД не нужна, Node.js в руки и будет счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 13:55 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
ЕвгенийВЗачем вообще хранить сообщения из чата? ситуация гипотетическая, жо) по сабжу есть что сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 13:59 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanMasterZivзабудь по пакетный режим загрузки. поясни те плиз, почему? Объяснять долго, в кратце -- ты же не хочешь, чтобы из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ? Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:21 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanMasterZivшардинг, партицирование бд по, скажем, ветке форума. вот! этого-то я и не знал. нагуглил это . вроде то что нужно. шардинг, я так понимаю, это мой случай. Да, вроде бы похожая на хорошую статься. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:23 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
..статья.. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:23 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanподскажите, где можно почитать про "пакетный режим" для MySQL/Postgre ? https://www.google.ru/#hl=ru&newwindow=1&safe=off&tbo=d&output=search&sclient=psy-ab&q=bulk+insert+mysql&oq=bulk+insert+mysql&gs_l=hp.12...0.0.1.3505.0.0.0.0.0.0.0.0..0.0...0.0...1c.vuUQ7uT0U7E&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.41642243,d.bGE&fp=ead1c6aa53b2b8cb&biw=1280&bih=963 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:24 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
MasterZivОбъяснять долго, в кратце -- ты же не хочешь, чтобы из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ? Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей). это понятно. думал, есть еще какие-то аргументы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:25 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
ЕвгенийВ, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 15:27 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanчто такое "Трехзвенка" ? и вообще, про высоконагруженные системы только в книжках фантазируют? в реале никто с этим не сталкивался? Рассуждать про высоконагруженные системы и не знать их азбуки ? "Трехзвенка": клиент - сервер(ы) приложений - сервер БД. Ваши 200000 клиентов общаются только с серверами приложений, которых м.б. сколько угодно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:55 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
_модРассуждать про высоконагруженные системы и не знать их азбуки ? я же только учусь) понял, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:56 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanпредставьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. NoSql, если дело касается БД, а тут есть блог (правда в архиве, настоящий сайт удален, почему-то) http://abrdev.com/?cat=126 " target="_blank"> http://web.archive.org/web/20120126032612/http://abrdev.com/?cat=126 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:35 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanя же только учусь) Ни один сервер БД не поддержит 200000 одновременных коннектов. Поэтому коннектятся к БД сервера приложений в количестве ~ 10**3. А сервера приложений обслуживают в очередь всех клиентов. Масшабируется за счет увеличения этих серверов. Ессно бизнес логика тоже на серверах приложений, в БД нельзя. Все довольно сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:49 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
_мод, понятно, что клиенты не к БД коннектятся) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 18:00 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
если про инсерты, то наверно внутренние системы пиарятся :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 18:11 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXman, в журнале ][акер начиная с №7за 2012г серия из 6 статей "Учебник по высоким нагрузкам", где реальные парни конкретно рассматривают тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 20:01 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
MasterZivniXmanпропущено... поясни те плиз, почему? Объяснять долго, в кратце -- ты же не хочешь, чтобы из 100 постов, попавших в буфер, все 99 постов не попали бы в БД изза ошибки в одном ? Ты же хочешь, наверное, чтобы как только пользователь запостил что-то в форум, оно сразу же попадало в БД (или хотябы гарантированно попадало в БД, пусть может быть и не сразу, но независимо от других постов других пользователей).Должен заметить, что аргумент не выдерживает критики. Утилиты-загрузчики обычно понимают параметр типа -m maxerrors или ERRORS (errors to allow) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 20:31 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
zeon11в журнале ][акер ...<sarcasm>Очень авторитетный источник</sarcasm> ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 20:33 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXman_мод, понятно, что клиенты не к БД коннектятся) Основная проблема - сохранить транзакцию клиента ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 09:31 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanи того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов. На днях гоняли PostgreSQL. Была задача как можно быстрее залить данне для дальнейшей обработки. Тестовая табличка из 135 полей. Файл текстовый. Индексы по 10 полям. На ноуте CoreDuo 9400 2 ядра, ноутбучный винт 5400, Win7Pro 64. Дефолтная установка postgre 9.2, т.е. тупо запустили инсталятор и ничего не тюнили. Тестовых записей 1 000 000. Загрузка из файла чуть больше минуты. Так что на нормальном железе, 400 000 инсертов это не так уж и много. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 13:01 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
>29 янв 13, 18:44 [13846663] niXman, >представьте ситуацию, ... Посмотри здесь , может что и сгодится, как подход, и предложенные журналы Хакер полистай,- академия, полезно, я так с удовольствием. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 13:38 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
ВМоисеев, почитаю. спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:00 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
tumblerrr, очень много это если генерируются 50-100 лимонов записей и это воще то махонькая часть задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:32 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
прошу прощения за оффтоп. ВМоисеев, скажите, где-то на CVS исходники доступны? кириллица в именах идентификаторов все еще присутствует? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:40 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
ViPRostumblerrr, очень много это если генерируются 50-100 лимонов записей и это воще то махонькая часть задачи Да это просто для теста был лям. А так там 2.5-3.0 ляма записей, примерно каждые 15 мин падают. Надо их импортнуть в БД и обработать. В общем не самая супернагруженная задача, но тем не менее работа дефолтного постгреса на ней показательна. А ведь его еще по тюнить можно) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:43 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
>сегодня, 14:40 [13857225] niXman, >прошу прощения ... Исходники проектов лежат на gotdotnet.files //-- Remoting.rar http://www.gotdotnet.ru/files/407/ //-- Сервер приложений http://www.gotdotnet.ru/files/367/ С уважением, Владимир ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 15:00 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
niXmanпривет. прежде всего, прошу простить меня, если запостил не в тот раздел. представьте ситуацию, будто бы у вас онлайн-чат. в чате, у вас, ~200000 юзеров онлайн. каждый юзер, в минуту, пишет 2 сообщения. и того, в минуту, получаем 400000 инсертов. в час получается - 24000000. ясно, что любая БД не осилит такое кол-во инсертов. 6666 вставок в секунду? Такие объемы спокойно пережевывает и Oracle, и MySQL. А всякие berkeleydb или leveldb жуют и по 240к вставок в секунду. Ну умеешь настраивать, пупс. niXman в добавок, представьте, что клиентская логика на серверной стороне настолько тяжела, что вы вынуждены запустить ваш сервис на 10ти машинах одновременно, чтоб распределить нагрузку. при такой архитектуре сервиса, встает логичный вопрос: а как быть с БД? Быть? Очень просто. Дать денег специалистам по БД. Если они конечно есть. Деньги. На специалистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2013, 02:37 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
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) есть свои сильные и слабые стороны и области применения. Поэтому надо выбирать исходя из требований, возможного развития системы в будущем, затрат не только на разработку, но и поддержку и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 01:34 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Peter FИнтересно, что никто не упомянул о распределеных NoSQL системах хранения Корректировка - уроминание о NoSQL было уже ранее в ответах. Еще часто ставят In-memory Cache между базой данных и логикой примема/обработки запросов. Системы кеширования могут сливать данные в базу синхроно или асинхроно с указаной задержкой. Я использовал это для того чтобы фактически организовать буффер в памяти для накопления данных и потом записи их в базу "пакетами". Если установить кластер - то потери данных не произрйдет , так как рапределенный кеш реплицирует данные на другой нод. Конкретно систему кеширования я использовал - опен сорс Hazelcast для Джава ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 02:00 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Peter Fно я думаю вряд ли кто-то может привести пример кластера традиционной SQL СУБД c тысячами серверов и линейным графиком масштабируемости.:) Вот прямо сейчас изучаю проект в котором MySQL и шардинг ровно (в текущий момент) на 1000 серверов. Скромная платежная система. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 09:00 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Вот всегда почему-то приводят в пример то Амазон, но Фейсбук то еще что-то. Есть в этих системах одно НО, что позволяет "размазывать данные" по куче серверов. Это НО называется ДАННЫЕ. Фича этих данных, что они НЕ СВЯЗАНЫ МЕЖДУ СОБОЙ!!! Поясню - системе абсолютно все равно что данные Пети лежат на одном сервере, а данные Васи на другом! Платежные системы - то же самое! Транзакции обращаются к 1 - 2 счетам, найти которые не составляет проблемы. Попробуйте размазать данные бухучета и получить потом баланс в реальном времени? Никакой шардинг тут не работает! Поэтому и строят кластера Ораклячие - чтобы иметь доступ ко ВСЕМ данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 18:07 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
IgorKВот всегда почему-то приводят в пример то Амазон, но Фейсбук то еще что-то. Есть в этих системах одно НО, что позволяет "размазывать данные" по куче серверов. ... Попробуйте размазать данные бухучета и получить потом баланс в реальном времени? Никакой шардинг тут не работает! Поэтому и строят кластера Ораклячие - чтобы иметь доступ ко ВСЕМ данным. Согласен, потому сразу и написал - что все зависит от конкретной задачи и выбор технологий зависит от многих факторов. Но даже в случае Фейсбук - не все так просто как кажется , у них-то данные как раз очень взаимосвязаны - по сути это один большой граф , вот сильно упрощенный пример: - сообщение от пользователя привязано к пользователю , который его написал - этот пользователь связан с другими пользователями "дружеско-семейными" связями - у тех польхователей куча своих сообщений, статусов, предпочтений (I like it) - и т.д. И они предоставляют свой Graph API чтобы ходить/искать по этим связям и "выворачивать" данные как угодно. И этот API используется рекламными "монстрами" чтобы проводить рекламные компании и в реальном времени отслеживать эффективность, смену предпочтений и т.д. Но если мы вспомним с чего началась эта дискуссия - это быстрая запись в базу большого объема информации. Вот например ссылка http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html В которой приводятся результаты тестирования Кассандры Нетфликсом (один из крупнейших провайдеров видео через Инет в Штатах) Тестировали в Амазон облаке, получили 1.1 млн записей в секунду с репликацией в три зоны, итого 3.3 млн. записей в секунду. В статье есть график масштабируемости - фактически линейно вплоть до 350 серверов. К сожалению статья на англ. но наверное можно автоматом приличный перевод получить в Хроме или еще как. Это один из примеров, таких бенчмарк можно много накопать. Опять же, это как альтернативная точка зрения. Даже если традиционная технология лучше подходит под ваши требования - всегда полезно узнать что-то новое, это может натолкнуть на какие-то свежие или оригинальные идеи или подходы и применить их даже в рамках традиционной SQL или любой другой платформы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 18:50 |
|
подскажите по архитектуре высоконагруженной системы
|
|||
---|---|---|---|
#18+
Peter Fсвежие или оригинальные идеи или подходы и применить их даже в рамках традиционной SQL или любой другой платформы. И что? У тебя есть миллионы пользователей или хотя-бы три сервера (не виртуальных) c сотню роботов-генераторов трафика где можно попробовать хоть что-то применить? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2013, 00:30 |
|
|
start [/forum/topic.php?all=1&fid=33&tid=1547727]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
138ms |
get tp. blocked users: |
1ms |
others: | 301ms |
total: | 521ms |
0 / 0 |