Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 БД под большой веб проект  [new]
Neotvechy
Guest
Есть большой соблазн заюзать под проект последний разработки MySQL (сердце к ним все время лежит). Речь идет о бд которая должна выдержать нагрузки: хранить свыше 50 миллионов записей. В секунду принимать свыше 10 000 поисковых запросов на 5 миллионов записей ну и одновременно 15 миллионов запросов на чтение и меньше 600 000 на запись...чего-то тут я начинаю сомневаться в MySQL на InnoDB)
Также БД должна отлично поддерживать транзакций и обьект view.
Конечно можно сказать что такие нагрузки могут уже выдержать системы основанные на распределенном вычислении. Но всеже в основу по надежности что лучше взять?
Часть своих программеров кричит о PostgreSQL, мол в ней функционала больше. Но мне она кажеться медленней. MSSQL со своим медленным субд и заявой от Микросовта "Это не мы..компы нормальные надо покупать" просто убивает)
Да и в качестве языков разработки будут взяты: PHP, Python.
3 авг 08, 05:25    [6020307]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
Если не сложно, опиши задачу поподробнее.
Есть у меня подозрение, что выбор БД - это самое простое, что в ней есть и зависит скорее от общей архитектуры и прочих требований...

А то 600 000 записей в секунду (пишущих транзакций, как я понимаю) звучит достаточно странно, такой поток редко когда бывает.

Какой характер нагрузки, какие запросы по каким данным, что и когда изменяется, можно ли объединять в блоки, какие требования к надежности и т.п.
Впрочем, судя по описанному, все равно придется распределенную систему строить, шардингом или партишонингом. Иначе никаких ресурсов не хватит...
3 авг 08, 12:47    [6020480]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

DPH
Если не сложно, опиши задачу поподробнее.

Особенно подробно - откуда возьмутся 10 тысяч запросов в секунду на
поиск и 15 миллионов запросов на чтение. Через какой канал они смогут
проползти?

Posted via ActualForum NNTP Server 1.4

3 авг 08, 13:00    [6020494]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Neotvechy
Guest
Проект аля GDS(глобальная дистрибуционная сеть). Может кто слышал о таких и уже понел откуда такие нагрузки...но конечно они будут в случае международного успеха проекта (пример контента: авиабилеты, гостиницы, туры, трансфер ). В среднем мы расчитывали отталкиваясь от статистики компании Pegasus. Эти ребята работают как интеграторы в БД GDS систем. У низ около 80 000 обьектов в бд. На который приходится то 500-1000 записей, которые и участвуют в поисковых запросах....в секунду у них идет до ~5000 транзакций (чтение/запись)...насчет моих 10 000 поисковых запросов это все взвесил еще раз и понел что в среднем будет 2000 максимум.
600 000 записей это тоже круто..в среднем если брать только одну Россию то скорее дойдем до 10000.
P.S. Сегодня буду делать тест MySQL и Oracle...недавно услышал что MySQL с таблицами от миллиона записей начинает сильно глючить ...
3 авг 08, 16:01    [6020695]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Neotvechy
Guest
Соблазн к MYSQL идет от того что я слышал как часть Googla перешла на него...или они уже чисто использовали свои неопубликованные разработки? Помоему Google даже купил MYSQL.
3 авг 08, 16:05    [6020700]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Geba
Member

Откуда: Moscow
Сообщений: 75
Neotvechy
Соблазн к MYSQL идет от того что я слышал как часть Googla перешла на него...или они уже чисто использовали свои неопубликованные разработки? Помоему Google даже купил MYSQL.


Вообще-то Sun купила MySQL вначале этого года.
3 авг 08, 18:37    [6020864]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
В общем, мой стандартный ответ на такие вопросы:

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

2. Когда архитектура уже будет - посмотрите, какие реально нагрузки доходят до БД, как их можно оптимизировать (ну или это еще в рамках разработки архитектуры будет сделано)

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

Ну и потом уже или ответ про выбор БД будет очевиден или можно будет опять спросить на форуме.

P.S. Для конкретной задачи я бы, опять-таки, по традиции, посоветовал бы DB2 Express C + шардинг.
Но вообще БД - это последнее, что должно волновать :)
3 авг 08, 21:27    [6021027]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
однако
Guest
при таких обьемах, можно вообще обойтись distributed memory cache'ом (за то какой response time!!),
а база, как заметил DPH, дело самое последнее....

P.S.
5К++ к записей в сек при граммотной архитектуре вполне справятся entry-level сервера,
но в тотже момент может и нехватит навороченных midrange
3 авг 08, 22:25    [6021091]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
Ну, в этой задаче, как мне кажется, без распределенного кэша вообще не обойтись. Какой - это отдельный вопрос, от банального memcached до MySQL Cluster (который, в общем, тоже просто распределенный кэш в памяти).

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

А как 5K+ пишущих транзакций в секунду на entry-level серверах получить? Т.е. если пачками писать, то понятно. С шардингом или партишонингом - тоже понятно. А еще как?
(К тому же, судя по задаче, тут update, а не insert, что сильно хуже).
3 авг 08, 23:26    [6021186]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
однако
Guest
DPH
Ну, в этой задаче, как мне кажется, без распределенного кэша вообще не обойтись. Какой - это отдельный вопрос, от банального memcached до MySQL Cluster (который, в общем, тоже просто распределенный кэш в памяти).

это верно. дело вкуса и знаний (и понимания)
мне ближе coherence... ;)

DPH

Кстати, тут, похоже, идет работа с большими объектами, каждый по сотням строк. Вполне возможно, что если их писать блобами, то требования можно сильно уменьшить.
А как 5K+ пишущих транзакций в секунду на entry-level серверах получить? Т.е. если пачками писать, то понятно. С шардингом или партишонингом - тоже понятно. А еще как?
(К тому же, судя по задаче, тут update, а не insert, что сильно хуже).

поставить middleman'а?! :)
конечно, с синхронизацией придется повозится, но это несмертельно.
4 авг 08, 00:08    [6021234]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

DPH

А как 5K+ пишущих транзакций в секунду на entry-level серверах получить?

Думаешь, прожект аффтара дойдёт до таких объёмов раньше 22-го века?

Posted via ActualForum NNTP Server 1.4

4 авг 08, 05:42    [6021410]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
однако

мне ближе coherence... ;)
[quot]
Он денег, кажется, стоит. И не маленьких, небось?

[quot DPH]
поставить middleman'а?! :)

О, всегда можно узнать что-то новое. А что это?
5 авг 08, 01:30    [6026251]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Neotvechy
Guest
Всем спасибо за ответы. DB2 IBM на меня произвела неплохое впечатление...про кеширование каких-нибуть данных на вывод к примеру, это ясное дело что нужно...но всеравно спасибо)
8 авг 08, 03:17    [6042084]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
однако
Guest
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, 02:52    [6048955]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
однако
Guest
Neotvechy

Проект аля GDS(глобальная дистрибуционная сеть). Может кто слышал о таких и уже понел откуда такие нагрузки...но конечно они будут в случае международного успеха проекта (пример контента: авиабилеты, гостиницы, туры, трансфер ).

да у вас ключевое слово GDS(глобальная дистрибуционная сеть) ;)

Neotvechy
Всем спасибо за ответы. DB2 IBM на меня произвела неплохое впечатление...про кеширование каких-нибуть данных на вывод к примеру, это ясное дело что нужно...но всеравно спасибо)

так что думайте про... кеширование :)
10 авг 08, 02:57    [6048960]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest

наооборот, совсем старое :)

А, я думал, 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, 02:30    [6050266]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
однако
Guest
DPH
Впрочем, дешевой технологии кэширования у IBM, вроде бы, еще нет. А жалко, была бы замечательная пара к DB2 Express C.

И вряд-ли будет в ближайщем будущем, не всем это надо (и все это еще понимают)...
а кому надо, тот и сам найдет ;)

DPH

P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;)

P.S.
вам еще "повезло"!
а то у Sybase ASE все намного "проще" решается ;)
эх, с DB2 совсем забыл что-такое процедуры...
12 авг 08, 01:54    [6054650]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
DPH

P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;)

Интереса ради, для чего понадобился select from insert?
12 авг 08, 09:39    [6054966]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
AAron
DPH

P.S. А как я сейчас мучаюсь от отсутствия в Oracle select from insert ;)

Интереса ради, для чего понадобился select from insert?


Для экономии усилий.
Что-бы метод создания объекта в application layer (у меня это, по некоторым причинам, почти всегда только один insert) возвращал его правильно инициализированным (т.е. уникальный ключ по sequence, дефолтные значения заполнены и т.п.), после чего resultset можно было бы обрабатывать опять-таки стандартным способом конструирования объекта.

Вместо этого обычно приходится отдельным запросом получать очередное значение sequence (ну или кэшировать пачку на сервере, что не лучше).

Вообще, в Oracle много чего мне не хватает, но, возможно, многое просто из-за незнания Oracle. Впрочем, не покидает ощущение, что при разработке Oracle использование его с application layer не предполагалось.
12 авг 08, 12:18    [6055960]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54791

DPH

Вообще, в Oracle много чего мне не хватает, но, возможно, многое просто
из-за незнания Oracle.

+1

Или в оракуле insert ... returning зарубили?..

Posted via ActualForum NNTP Server 1.4

12 авг 08, 15:19    [6057334]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
DPH
Guest
Dimitry Sibiryakov

Или в оракуле insert ... returning зарубили?..

Про returning я знаю, но чем от тут поможет?
Там же только заполнение переменных, а не возврат resultset.
Т.е. сэкономить лишний вызов sequence, по идее, можно - но при этом придется добавлять специфическую обработку на сервере - тот же биндинг отдаваемых переменных.
Т.е. код усложнится. По сравнению с DB2 - все не столь уж и замечательно...
12 авг 08, 21:48    [6058985]     Ответить | Цитировать Сообщить модератору
 Re: БД под большой веб проект  [new]
Yo.!
Guest
DPH
Dimitry Sibiryakov

Или в оракуле insert ... returning зарубили?..

Про returning я знаю, но чем от тут поможет?
Там же только заполнение переменных, а не возврат resultset.
Т.е. сэкономить лишний вызов sequence, по идее, можно - но при этом придется добавлять специфическую обработку на сервере - тот же биндинг отдаваемых переменных.
Т.е. код усложнится. По сравнению с DB2 - все не столь уж и замечательно...

биндинг на сервере конечно можно, но вот только до такого бреда догадается только самые сооброзительные. а фетчить из резалтсета в db2 мне представляется громоздким и затратным по сравнению с oracle и получением в переменные через insert ... returning одной командой.
13 авг 08, 11:52    [6060736]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить