Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Высоконагруженные проекты и запросы / 25 сообщений из 95, страница 1 из 4
05.01.2010, 18:08
    #36398136
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
Сильно ли тормозят хранимые процедуры, по сравнению с обычными запросами из web-приложения? Почему ebay отказался от процедур и сложных запросов в пользу простых запросов внутри скриптов и обработки данных на веб-серверах? Получается базы жутко тормозят и гораздо быстрее перекинуть данные на web-сервер и обработать, чем предоставить это субд?
...
Рейтинг: 0 / 0
05.01.2010, 18:19
    #36398150
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf
за 2006 год, oracle.

No business logic in database
- No stored procedures
- Only very simple triggers (default value population)
Move CPU-intensive work of applications
- Referential integrity
- Joins
- Sorting
Extensive use of prepared statements and bind variables
...
Рейтинг: 0 / 0
05.01.2010, 18:23
    #36398159
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
st_st
http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf

Им не хватило процессорной мощи их сервера, а распараллелить работу на
кластер они не смогли или не захотели. В результате отказались от
серверного кода. JErik на их месте пошёл дальше и избавился от сервера
как такового.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.01.2010, 18:46
    #36398188
Yo.!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
видимо посчитали, что оптимизатор субд слишком наворочен и слишком сложен, у них ограниченное кол-во запросов и наверно им показалось эффективней отказаться от универсального оптимизатора и зашить руками свои запросы.

2Dimitry Sibiryakov
на сколько я помню у них как раз крупнейший оракловый RAC на 16 и 8 нод, правда подозреваю только для аналитики
...
Рейтинг: 0 / 0
05.01.2010, 19:42
    #36398251
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
авторПолучается базы жутко тормозят и гораздо быстрее перекинуть данные на web-сервер и
при данной архитектуре системы, трехзвенной по факту, и особенно конкретной нагрузке, было бы глупо всю обработку логики кидать на сервер, оставляя промежуточному звену лишь мелкие функции. Наоборот, сделали так как и должно быть. Подчеркну, что решение корректное именно потому что
- система трехзвенная (и даже больше)
- нагрузка очень высокая
- действия пользователей специфичны для данной системы

в таких случаях производительность каждой части нужно четко регулировать, в том числе перекидывая часть функционала и на клиентский браузер.
...
Рейтинг: 0 / 0
05.01.2010, 23:29
    #36398473
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
st_sthttp://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf
за 2006 год, oracle.

No business logic in database
- No stored procedures
- Only very simple triggers (default value population)
Move CPU-intensive work of applications
- Referential integrity
- Joins
- Sorting
Extensive use of prepared statements and bind variables

А теперь, вопрос: Что здесь делает Oracle (или любая другая клиент\серверная СУБД)?
...
Рейтинг: 0 / 0
05.01.2010, 23:38
    #36398492
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
kdvпри данной архитектуре системы, трехзвенной по факту, и особенно конкретной нагрузке, было бы глупо всю обработку логики кидать на сервер

Всю, это простите, какую!? Действительно, есть некая часть нагрузки, которую можно параллелить средним звеном. Но, извините, именно транзакионную часть, Вы как хотите, но никак не распараллелите на среднем уровне.

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


Да хоть 958 звеньев по середине. В любом случае СУБД (RAC или аналогичные решения) должна поддержать все это хозяйство.

ЗЫ. Давненько не всплывали темы про N-звенки...
...
Рейтинг: 0 / 0
05.01.2010, 23:39
    #36398494
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
pkarklinА теперь, вопрос: Что здесь делает Oracle (или любая другая клиент\серверная СУБД)?
Рискну предположить, что выступает в роли тупого транзакционного отказоустойчивого хранилища, способного перемалывать груду примитивных запросов.
Угадал?
...
Рейтинг: 0 / 0
05.01.2010, 23:51
    #36398500
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
ЛПРискну предположить, что выступает в роли тупого транзакционного отказоустойчивого хранилища, способного перемалывать груду примитивных запросов.
Угадал?

Рискну спросить: что для "тупого отказоустойчигого хранилища" проще перемолоть:

Код: plaintext
EXEC MakeClientOrder ... --куча параметров

или

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT...

INSERT...

UPDATE...

SELECT...

UPDATE...

INSERT ...

...

UPDATE...

INSERT...
...
Рейтинг: 0 / 0
06.01.2010, 00:01
    #36398510
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
pkarklin Но, извините, именно транзакционную часть, Вы как хотите, но никак не распараллелите на среднем уровне.
такое впечатление что Вы не писали трехзвенных систем, или никогда в жизни не видели электронных магазинов. Я осмелюсь напомнить, что в массовых эл. магазинах, пусть и не таких "нагрузоустойчивых", чаще всего используется MySQL с движком вообще без транзакций.

Кроме того, не вижу особой связи между транзакционностью и бизнес-логикой. Какая разница, запустить пакет PL/SQL, или выполнить обработку в транзакции в среднем звене? Или что, на Оракле нельзя писать без PL/SQL ? Или PL/SQL намертво привязан к транзакциям?

Собственно, "распараллеливание транзакционной части" на среднем звене не требуется и разумеется из СУБД вынесено быть не может. Но речь как раз о том, чтобы кроме как транзакциями и изменением данных Оракл не грузить, и чтобы вычислениями занималось среднее звено, а не Оракл.
...
Рейтинг: 0 / 0
06.01.2010, 00:12
    #36398519
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
pkarklinРискну спросить: что для "тупого отказоустойчигого хранилища" проще перемолоть:

Код: plaintext
EXEC MakeClientOrder ... --куча параметров

или

Код: plaintext
1.
2.
3.
SELECT...
INSERT...
UPDATE...

Считая, что внутре хранимки находится та же самая последовательность селектов/инсертов/упдейтов - рискну предположить, что тупому отказоустойчивому хранилищу примерно одинаково. На то оно и тупое.
...
Рейтинг: 0 / 0
06.01.2010, 00:23
    #36398527
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
kdvтакое впечатление что Вы не писали трехзвенных систем, или никогда в жизни не видели электронных магазинов.

Спасибо. Я ждал примерно такого пассажа.

kdvЯ осмелюсь напомнить, что в массовых эл. магазинах, пусть и не таких "нагрузоустойчивых", чаще всего используется MySQL с движком вообще без транзакций.

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

kdvКроме того, не вижу особой связи между транзакционностью и бизнес-логикой. Какая разница, запустить пакет PL/SQL, или выполнить обработку в транзакции в среднем звене? Или что, на Оракле нельзя писать без PL/SQL ? Или PL/SQL намертво привязан к транзакциям?

Разница есть, и она довольно принципиальна, если Вы представляете себе разработку "морды" электронной площадки и ее "бэкофиса". Дело не в том, что с "клиента" нельзя в принципе вызвать в транзакции ряд инструкций. Дело в том, что эти самые разработчики "морды" и понятия не имеют, как и что хранится и обрабатывается на стороне "бэкофиса" (СУБД). И "пускать" их в хранилище с "прямыми" запросами - это прямой путь к краху всей системы в целом. Уж поверьте...

kdvСобственно, "распараллеливание транзакционной части" на среднем звене не требуется и разумеется из СУБД вынесено быть не может. Но речь как раз о том, чтобы кроме как транзакциями и изменением данных Оракл не грузить, и чтобы вычислениями занималось среднее звено, а не Оракл.

А тут, собственно, никто и не спорит. Часть "вычислений", действительно, можно вынести на средний уровень и распараллелить (чем, собственно, и пользуемся). Но есть часть транзакционной нагрузки, которую, к сожалению, ну никак на среднем звене не распараллелить.
...
Рейтинг: 0 / 0
06.01.2010, 00:32
    #36398533
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
ЛПСчитая, что внутре хранимки находится та же самая последовательность селектов/инсертов/упдейтов - рискну предположить, что тупому отказоустойчивому хранилищу примерно одинаково. На то оно и тупое.

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

Ваша последовательность действий накатывания обновлений на "систему"? Естественно, это кластер, как минимум NLB на среднем уровне...
...
Рейтинг: 0 / 0
06.01.2010, 01:44
    #36398571
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
2 pkarklin
ЛПСчитая, что внутре хранимки находится та же самая последовательность селектов/инсертов/упдейтов - рискну предположить, что тупому отказоустойчивому хранилищу примерно одинаково. На то оно и тупое.

Это если посмотреть со стороны "тупого хранилища"
Т.е. протоколируем консенсус по поводу того, что со стороны тупого хранилища примерно параллельно?
Оч хорошо.

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

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

Ваша последовательность действий
Да ну бросьте. Я не умею лечить по фотографии, тем более при отсутствии оной.
Если отвечать в стиле заданного вопроса, то последовательность действий очень простая - взять да обновить.
...
Рейтинг: 0 / 0
06.01.2010, 09:57
    #36398669
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
kdvтакое впечатление что Вы не писали трехзвенных систем, или никогда в жизни не видели электронных магазинов. Я осмелюсь напомнить, что в массовых эл. магазинах, пусть и не таких "нагрузоустойчивых", чаще всего используется MySQL с движком вообще без транзакций.
Скажите, что вы шутите...
...
Рейтинг: 0 / 0
06.01.2010, 10:38
    #36398703
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
an0nymСкажите, что вы шутите...
- Да-да и ПлоХоПлюшка там рулят всех.
...
Рейтинг: 0 / 0
06.01.2010, 13:34
    #36398869
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
Вобщем понятно в общих чертах, для разгрузки oracle, решили перенести обработку на сторону web-приложений. Получается в их случае перебрасывать множество данных простыми запросами на сервер приложений для последующей их обработки выходит быстрее, чем делать это например хранимыми процедурами с выводом конкретного результата. Можно было наверное увеличить количество серверов баз данных и снизить нагрузку, но пошли другим путём.

Кстати, а хранимые процедуры используют в вебе на крупных проектах? В России почти всё пишется на php + my sql и запросы составляются внутри php-страниц, о существовании процедур многие даже не подозревают.

Насчёт интернет-магазинов, крупнейший в мире amazon.com тоже на oracle, но пока не находил информации как у них там с запросами всё устроено.

А так конечно, в основном везде php + mysql, форумы, cms, интернет-магазины (oscommerce к примеру), пишут запросы внутри php-страниц и не задумываются ни о каких процедурах.

Имеет ли смысл выделяться из общего потока и работать только с процедурами? Понятно, что уровень безопасности возрастает (для взломщика невидна схема данных и нельзя изменить сам запрос), а скорость работы сайта?

Ещё один интересный сайт - myspace.com, помню когда-то был мировым лидером толи по количеству посещений, толи по отдаваемому трафику. Там asp.net + ms sql server, велика вероятность использования процедур, но пока тоже не встречалось не подтверждение ни опровержение этого предположения.
...
Рейтинг: 0 / 0
06.01.2010, 13:42
    #36398878
Di_LIne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
st_stВ России почти всё пишется на php + my sql и запросы составляются внутри php-страниц, о существовании процедур многие даже не подозревают.
Потому их, сайтеги, и щелкают как орехи...
А в суриозных - только за слово ПыхПых - отстреливают... на месте.
...
Рейтинг: 0 / 0
06.01.2010, 13:53
    #36398888
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
авторПолучается в их случае перебрасывать множество данных простыми запросами на сервер приложений для последующей их обработки выходит быстрее, чем делать это например хранимыми процедурами с выводом конкретного результата.

Для абстрактных данных и абстрактной их обработки ничего не "получится". Решение надо находить в каждом конкретном случае.

авторВобщем понятно в общих чертах, для разгрузки oracle, решили перенести обработку на сторону web-приложений.

Еще раз повторюсь. Часть нагрузки (в основном RO нагрузка) можно вынести на средний уровень и баллансировать там. Но в любом случаем саму процессинговую часть, "меняющую данные" в хранилище, никуда не унести.

авторКстати, а хранимые процедуры используют в вебе на крупных проектах?

Да. В полный рост. И не только хп. В "крупных проектах" вообще в большинстве случаев прямой доступ к таблицам закрыт.

авторА так конечно, в основном везде php + mysql, форумы, cms, интернет-магазины (oscommerce к примеру), пишут запросы внутри php-страниц и не задумываются ни о каких процедурах.

Какая то у Вас не полная математическая индукция. Даже этот форум не на пхп и не на майскуле.

авторИмеет ли смысл выделяться из общего потока и работать только с процедурами?

Хотите посоревноваться с лидерами этой отрасли рунета - "выделяйтесь и работайте".

авторТам asp.net + ms sql server

Как уже было сказано выше - не только там.
...
Рейтинг: 0 / 0
06.01.2010, 14:11
    #36398902
GrayStrannik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
an0nymkdvтакое впечатление что Вы не писали трехзвенных систем, или никогда в жизни не видели электронных магазинов. Я осмелюсь напомнить, что в массовых эл. магазинах, пусть и не таких "нагрузоустойчивых", чаще всего используется MySQL с движком вообще без транзакций.
Скажите, что вы шутите...В массовых эл. магазинах на самом деле используется MySQL с движком вообще без транзакций. И с этим нет проблем, потому что транзакция там умещается в один неконкурентный запрос. Даже один из крупнейших интернет-магазинов Болеро на своём сайте официально пишет, что 2-3% заказов заканчиваются отказом в товаре - у них нет своего склада, нет информации по наличию на чужих складах товара и им в транзакции нечего резервировать. Такова жизнь: проблема с отсутствием транзакций поглощается куда большей проблемой с физическим учётом наличия товара на складе.
...
Рейтинг: 0 / 0
06.01.2010, 14:14
    #36398906
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
GrayStrannik,

движок MYSQL без транзакций подразумевает под собой еще и отсутствие FK...
...
Рейтинг: 0 / 0
06.01.2010, 14:15
    #36398909
GrayStrannik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
pkarklinКакая то у Вас не полная математическая индукция. Даже этот форум не на пхп и не на майскуле.И много Вы знаете российских форумов, под которыми не MySQL?
...
Рейтинг: 0 / 0
06.01.2010, 14:29
    #36398916
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
GrayStrannikВ массовых эл. магазинах на самом деле используется MySQL с движком вообще без транзакций. И с этим нет проблем, потому что транзакция там умещается в один неконкурентный запрос.

Давайте определимся с терминологией. Под термином "массовый" Вы понимаете кол-во интернет-магазинов или, все-таки, число клиентов одного интернет-магазина?

GrayStrannikДаже один из крупнейших интернет-магазинов Болеро на своём сайте официально пишет, что 2-3% заказов заканчиваются отказом в товаре - у них нет своего склада, нет информации по наличию на чужих складах товара и им в транзакции нечего резервировать.

Гм... Ну, значит, расти им еще и расти. Ни склада своего нет, ни данных о наличии у поставщиков, ни данных о... Кстати, принятие заказа (транзакция) <> резервирование товара под него (еще одна транзакция).

GrayStrannikТакова жизнь: проблема с отсутствием транзакций поглощается куда большей проблемой с физическим учётом наличия товара на складе.

Ну, если "учет наличия товара на складе" для кого-то проблема...
...
Рейтинг: 0 / 0
06.01.2010, 14:41
    #36398936
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
GrayStrannikИ много Вы знаете российских форумов, под которыми не MySQL?

Мне глубоко наплевать на статистику распределения СУБД по Российским форумам. Не потому, что они, Российские, а потому, что они форумы, и не имеют, за очень редким исключениме отношения к сабжу: "Высоконагруженные проекты".
...
Рейтинг: 0 / 0
06.01.2010, 15:43
    #36399027
igorekk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высоконагруженные проекты и запросы
Di_LInest_stВ России почти всё пишется на php + my sql и запросы составляются внутри php-страниц, о существовании процедур многие даже не подозревают.
Потому их, сайтеги, и щелкают как орехи...
А в суриозных - только за слово ПыхПых - отстреливают... на месте.
Facebook? :)

PS. Правда там не MySQL, там вообще Cassandra.
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Высоконагруженные проекты и запросы / 25 сообщений из 95, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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