|
|
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Есть большой соблазн заюзать под проект последний разработки MySQL (сердце к ним все время лежит). Речь идет о бд которая должна выдержать нагрузки: хранить свыше 50 миллионов записей. В секунду принимать свыше 10 000 поисковых запросов на 5 миллионов записей ну и одновременно 15 миллионов запросов на чтение и меньше 600 000 на запись...чего-то тут я начинаю сомневаться в MySQL на InnoDB) Также БД должна отлично поддерживать транзакций и обьект view. Конечно можно сказать что такие нагрузки могут уже выдержать системы основанные на распределенном вычислении. Но всеже в основу по надежности что лучше взять? Часть своих программеров кричит о PostgreSQL, мол в ней функционала больше. Но мне она кажеться медленней. MSSQL со своим медленным субд и заявой от Микросовта "Это не мы..компы нормальные надо покупать" просто убивает) Да и в качестве языков разработки будут взяты: PHP, Python. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 05:25 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Если не сложно, опиши задачу поподробнее. Есть у меня подозрение, что выбор БД - это самое простое, что в ней есть и зависит скорее от общей архитектуры и прочих требований... А то 600 000 записей в секунду (пишущих транзакций, как я понимаю) звучит достаточно странно, такой поток редко когда бывает. Какой характер нагрузки, какие запросы по каким данным, что и когда изменяется, можно ли объединять в блоки, какие требования к надежности и т.п. Впрочем, судя по описанному, все равно придется распределенную систему строить, шардингом или партишонингом. Иначе никаких ресурсов не хватит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 12:47 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPHЕсли не сложно, опиши задачу поподробнее. Особенно подробно - откуда возьмутся 10 тысяч запросов в секунду на поиск и 15 миллионов запросов на чтение. Через какой канал они смогут проползти? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 13:00 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Проект аля GDS(глобальная дистрибуционная сеть). Может кто слышал о таких и уже понел откуда такие нагрузки...но конечно они будут в случае международного успеха проекта (пример контента: авиабилеты, гостиницы, туры, трансфер ). В среднем мы расчитывали отталкиваясь от статистики компании Pegasus. Эти ребята работают как интеграторы в БД GDS систем. У низ около 80 000 обьектов в бд. На который приходится то 500-1000 записей, которые и участвуют в поисковых запросах....в секунду у них идет до ~5000 транзакций (чтение/запись)...насчет моих 10 000 поисковых запросов это все взвесил еще раз и понел что в среднем будет 2000 максимум. 600 000 записей это тоже круто..в среднем если брать только одну Россию то скорее дойдем до 10000. P.S. Сегодня буду делать тест MySQL и Oracle...недавно услышал что MySQL с таблицами от миллиона записей начинает сильно глючить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 16:01 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Соблазн к MYSQL идет от того что я слышал как часть Googla перешла на него...или они уже чисто использовали свои неопубликованные разработки? Помоему Google даже купил MYSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 16:05 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
NeotvechyСоблазн к MYSQL идет от того что я слышал как часть Googla перешла на него...или они уже чисто использовали свои неопубликованные разработки? Помоему Google даже купил MYSQL. Вообще-то Sun купила MySQL вначале этого года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 18:37 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
В общем, мой стандартный ответ на такие вопросы: 1. Придумайте архитектуру всей системы. Если нет опыта - найдите человека с опытом разработки больших нагруженных систем и предложите это сделать ему. Иногда это можно сделать и не очень дорого. (Даже если сами все придумали - все равно стоит посоветоваться с кем-нибудь с опытом, дешевле в конечном результате выйдет). 2. Когда архитектура уже будет - посмотрите, какие реально нагрузки доходят до БД, как их можно оптимизировать (ну или это еще в рамках разработки архитектуры будет сделано) 3. Прикиньте бюджет на лицензии, оцените нагрузку, скорость роста бизнеса (опять-таки, по идее это еще на этапе разработки архитектуры нужно, но часто, почему-то, делают уже в конце). Ну и потом уже или ответ про выбор БД будет очевиден или можно будет опять спросить на форуме. P.S. Для конкретной задачи я бы, опять-таки, по традиции, посоветовал бы DB2 Express C + шардинг. Но вообще БД - это последнее, что должно волновать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 21:27 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
при таких обьемах, можно вообще обойтись distributed memory cache'ом (за то какой response time!!), а база, как заметил DPH, дело самое последнее.... P.S. 5К++ к записей в сек при граммотной архитектуре вполне справятся entry-level сервера, но в тотже момент может и нехватит навороченных midrange ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 22:25 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Ну, в этой задаче, как мне кажется, без распределенного кэша вообще не обойтись. Какой - это отдельный вопрос, от банального memcached до MySQL Cluster (который, в общем, тоже просто распределенный кэш в памяти). Кстати, тут, похоже, идет работа с большими объектами, каждый по сотням строк. Вполне возможно, что если их писать блобами, то требования можно сильно уменьшить. А как 5K+ пишущих транзакций в секунду на entry-level серверах получить? Т.е. если пачками писать, то понятно. С шардингом или партишонингом - тоже понятно. А еще как? (К тому же, судя по задаче, тут update, а не insert, что сильно хуже). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2008, 23:26 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPHНу, в этой задаче, как мне кажется, без распределенного кэша вообще не обойтись. Какой - это отдельный вопрос, от банального memcached до MySQL Cluster (который, в общем, тоже просто распределенный кэш в памяти). это верно. дело вкуса и знаний (и понимания) мне ближе coherence... ;) DPH Кстати, тут, похоже, идет работа с большими объектами, каждый по сотням строк. Вполне возможно, что если их писать блобами, то требования можно сильно уменьшить. А как 5K+ пишущих транзакций в секунду на entry-level серверах получить? Т.е. если пачками писать, то понятно. С шардингом или партишонингом - тоже понятно. А еще как? (К тому же, судя по задаче, тут update, а не insert, что сильно хуже). поставить middleman'а?! :) конечно, с синхронизацией придется повозится, но это несмертельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 00:08 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPH А как 5K+ пишущих транзакций в секунду на entry-level серверах получить? Думаешь, прожект аффтара дойдёт до таких объёмов раньше 22-го века? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 05:42 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
однако мне ближе coherence... ;) [quot] Он денег, кажется, стоит. И не маленьких, небось? [quot DPH] поставить middleman'а?! :) О, всегда можно узнать что-то новое. А что это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 01:30 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за ответы. DB2 IBM на меня произвела неплохое впечатление...про кеширование каких-нибуть данных на вывод к примеру, это ясное дело что нужно...но всеравно спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2008, 03:17 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPH однако мне ближе coherence... ;) Он денег, кажется, стоит. И не маленьких, небось? ага, это точно, не малых, много там нулей перед запятой. но те кто покупает, просто экономят время.... и не только. можно конечно самим написать, все-такие не rocket science :) или же, как сами упоминали, немало готовых open source проектов (вопрос конечно, как там все работает) DPH однако поставить middleman'а?! :) О, всегда можно узнать что-то новое. А что это? наооборот, совсем старое :) в свое время, выходом из положения стал websphere mq, он послужил неким транзакционно-ориентированным гарантом (а-ля deferred transactions) доставки данных в базу (ума и времени такое придумать/сделать небыло)... основное что требовалось надежность записи в базу и предсказуемость поведения по времени системы в peak'овых ситуациях (как раз пик был 5К, который достигался в определенные дни года, при общей загрузки <90%) на entry-level серверах (up to 10K EUR) бюджет был "скромный", и хватило лишь бы на приобретение соответствуюшей техники и а-ля редакций неких баз данных, и все, дальше дудка. так что искались альтернативы... что интересно, база рассматривалась в последнею очередь :) open source варианты mq, увы, не прошли испытания, все "гибло" на необходимых нагрузках (prepaid телеком billing), вариант остался только от ibm (цена лицензий в сумме намнога дала фору, посравнению с базами), далее делался "детский" вариант (и при чем ключевой) distributed cache, и определялась база, где все данные в конце-концов будут храниться... в то время (года 3-4 назад), было сделано смелое утверждение ;) что ibm выпустит бесплатный db2 (не было тогда express-c, только msde и oracle xe)... остановились на db2 (став партнерами ibm и получив доступ к бесплатным версиям продуктов для разработки приложений) через 4 месяца ibm объявил о выпуски бесплатной версии без ограничений по обьему данных :) и итоге конечно компании по прошествию лет преобрели, кому нужно было, предпочитаемую редакции сервера баз и суппорт с дба :)) вот. сейчас бы делал иначе :) чего только стоит того, что тот же db2 express-c можно deployить на virtualization сервера, а если еще учесть, что db2 express-c стал поддерживать solaris, то вообще все очень прекрасно, осталось бы только найти умные головы :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2008, 02:52 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Neotvechy Проект аля GDS(глобальная дистрибуционная сеть). Может кто слышал о таких и уже понел откуда такие нагрузки...но конечно они будут в случае международного успеха проекта (пример контента: авиабилеты, гостиницы, туры, трансфер ). да у вас ключевое слово GDS(глобальная дистрибуционная сеть) ;) NeotvechyВсем спасибо за ответы. DB2 IBM на меня произвела неплохое впечатление...про кеширование каких-нибуть данных на вывод к примеру, это ясное дело что нужно...но всеравно спасибо) так что думайте про... кеширование :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2008, 02:57 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
наооборот, совсем старое :) А, я думал, middleman - это еще какая-то библиотека кэширования ;) чего только стоит того, что тот же db2 express-c можно deployить на virtualization сервера, а если еще учесть, что db2 express-c стал поддерживать solaris, то вообще все очень прекрасно, осталось бы только найти умные головы :)) Ага. А меня порадовало подробное описание реализации log shipping'а с использованием бесплатных компонент и чуть-ли не готовыми скриптами. Это если 3000$ за поддержку HADR платить жалко ;) Впрочем, дешевой технологии кэширования у IBM, вроде бы, еще нет. А жалко, была бы замечательная пара к DB2 Express C. P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 02:30 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPHВпрочем, дешевой технологии кэширования у IBM, вроде бы, еще нет. А жалко, была бы замечательная пара к DB2 Express C. И вряд-ли будет в ближайщем будущем, не всем это надо (и все это еще понимают)... а кому надо, тот и сам найдет ;) DPH P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;) P.S. вам еще "повезло"! а то у Sybase ASE все намного "проще" решается ;) эх, с DB2 совсем забыл что-такое процедуры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2008, 01:54 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPH P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;) Интереса ради, для чего понадобился select from insert? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2008, 09:39 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
AAron DPH P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;) Интереса ради, для чего понадобился select from insert? Для экономии усилий. Что-бы метод создания объекта в application layer (у меня это, по некоторым причинам, почти всегда только один insert) возвращал его правильно инициализированным (т.е. уникальный ключ по sequence, дефолтные значения заполнены и т.п.), после чего resultset можно было бы обрабатывать опять-таки стандартным способом конструирования объекта. Вместо этого обычно приходится отдельным запросом получать очередное значение sequence (ну или кэшировать пачку на сервере, что не лучше). Вообще, в Oracle много чего мне не хватает, но, возможно, многое просто из-за незнания Oracle. Впрочем, не покидает ощущение, что при разработке Oracle использование его с application layer не предполагалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2008, 12:18 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPH Вообще, в Oracle много чего мне не хватает, но, возможно, многое просто из-за незнания Oracle. +1 Или в оракуле insert ... returning зарубили?.. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2008, 15:19 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Или в оракуле insert ... returning зарубили?.. Про returning я знаю, но чем от тут поможет? Там же только заполнение переменных, а не возврат resultset. Т.е. сэкономить лишний вызов sequence, по идее, можно - но при этом придется добавлять специфическую обработку на сервере - тот же биндинг отдаваемых переменных. Т.е. код усложнится. По сравнению с DB2 - все не столь уж и замечательно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2008, 21:48 |
|
||
|
БД под большой веб проект
|
|||
|---|---|---|---|
|
#18+
DPH Dimitry Sibiryakov Или в оракуле insert ... returning зарубили?.. Про returning я знаю, но чем от тут поможет? Там же только заполнение переменных, а не возврат resultset. Т.е. сэкономить лишний вызов sequence, по идее, можно - но при этом придется добавлять специфическую обработку на сервере - тот же биндинг отдаваемых переменных. Т.е. код усложнится. По сравнению с DB2 - все не столь уж и замечательно... биндинг на сервере конечно можно, но вот только до такого бреда догадается только самые сооброзительные. а фетчить из резалтсета в db2 мне представляется громоздким и затратным по сравнению с oracle и получением в переменные через insert ... returning одной командой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=35470015&tid=1553069]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 162ms |

| 0 / 0 |
