1.3, Аноним (-), 22:22, 10/09/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Блин, а ктонить в курсе, полное задействование проца (всех ядер) для одного запроса, т.е. его распараллеливание, когданить сделают? или это для постгреса не реально?
| |
|
2.4, sam002_tmp (?), 22:44, 10/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Вы что из БД сделали?! А так, всё зависит от структуры запроса... Если вы используете функции для обработки, то всё хорошо и ядра все отработают и удалённые сервера через midleware можно вызвать))
| |
|
3.6, Аноним (-), 23:00, 10/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Да не, удаленных никаких нет, а вот про функции не понял, сколько и как чего не делаю (один коннект/запрос) всегда загружено только одно ядро, и просто запрос и свои хранимки с циклами/курсорами и использованием встроенных функций - по любому на один коннект/запрос используется только одно ядро, досадно, большая таблица и по ней относительно не сложный запрос который можно было бы распараллелить, ибо просматривает все записи, ну и соответственно выполнить быстрее, однако нет - исполняет в один поток, проц недогружен.
| |
|
4.9, anonymous (??), 23:28, 10/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
Жесткий тоже паралельно таблицу читать будет? Или Partitioning используется?.
| |
|
5.13, Аноним (-), 23:44, 10/09/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
Хм, не используется, но ведь далеко не всегда в диск все упирается? индексы, разные встроенные функции, если бы оно могло утилизировать весь проц то уж когднанить заметил бы, или вы хотите сказать что овчинка того не стоит, т.е. в подавляющем большинстве случаев толку от распараллеливания по процу будет чуть?
| |
|
6.29, Аноним (-), 14:25, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
всегда в диск упирается, если у вас все данные в память влезают то вам и база не нужна :)
| |
|
5.14, Аноним (-), 00:03, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Можно было бы понять если бы недозагружалось даже одно ядро, но он его под завязку выгребает, а значит хочет еще
| |
|
6.18, Аноним (-), 00:23, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
pg под каждый коннект использует отдельный процесс с одним рабочим потоком, в этом у вас и вся проблема. Иначе pg пока работать не умеет. В прочем, не только он один среди открытых субд.
| |
|
7.19, Аноним (-), 00:45, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Досадно это, понятно что для многоконнектной системы это не проблема, но в один коннект проще, если бы он внутри базой распараллеливался было бы шикарно)
| |
|
|
|
4.11, sam002_tmp (?), 23:42, 10/09/2012 [^] [^^] [^^^] [ответить]
| +2 +/– |
PL/pgSQL Позволяет делать любые безобразия. Если, например, речь о SELECT, то там порядок вывода играет роль и делать его многопоточно нетривиальная задача. Если в целом, то для чистого sql: один запрос - один поток. Если же запускать выполнение pgSQL функции, то можно брать диапазоны из таблицы, отправлять дополнительные запросы (http://www.postgresql.org/docs/9.2/interactive/dblink.html). Любой же интерфейс поддерживает многопоточность (libpq, python, perl).
Если ваш запрос упёрся в производительность проца, а не памяти/диска, то пора читать мануал.
| |
|
5.15, Аноним (-), 00:08, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Ну а что там еще читать? Большие таблицы, где надо - индексы, на тяжелых запросах всегда полностью загружено одно ядро, очевидно что в него и упирается, не ну винт тоже конечно в напряге, но он хоть изредка помаргивает а ядро под завязку.
| |
|
6.22, sam002_tmp (?), 01:46, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Ну... Я пол-года назад внутренностями postgres реализовывал перенос WP. Работало быстрее, чем NGINX и стандартные плагины WP для кеша.
| |
|
7.23, sam002_tmp (?), 02:01, 11/09/2012 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Ну... Я пол-года назад внутренностями postgres реализовывал перенос WP. Работало быстрее,
> чем NGINX и стандартные плагины WP для кеша.
Спать, спать, спать... Уже не по теме отвечаю.
Суть - хорошо продуманный алгоритм на порядки эффективнее нового железа и "фич". Для реализации у postgres много инструмента, но вести какие-то вычисления необходимо в отдельных модулях.
Упираться в производительность железа - сигнал к рефакторингу и расширению. Может быть вас устраивает задержка и проблемы нет?
| |
|
|
|
|
3.17, Аноним (-), 00:21, 11/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
он то как раз хочет чтобы субд была субд, а не бд, понимаешь разницу? Твои эти мидлваре и dblink'и просто костыли, воркэраунды из-за отсутствия нормальной реализации фичи со стороны субд.
| |
|
2.16, Аноним (-), 00:17, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
когда-нибудь да сделают, всё реально. Но хз когда это наступит, там есть более актуальные задачи на ближайшее время
| |
|
3.20, Аноним (-), 01:01, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Странно както, количество ядер растет, производительность дисковой подсистемы увеличивается, по идее этот вопрос будет все острее и острее, а у них насколько я знаю этого даже в широких планах нет, какието отдельные вещи параллелят но не сам основной движок, а ведь такое изменение наверное очень много за собой потянет, как бы фигня не созрела.
| |
|
4.21, all_glory_to_the_hypnotoad (ok), 01:19, 11/09/2012 [^] [^^] [^^^] [ответить]
| +5 +/– |
для OLTP нагрузки этого не нужно (т.е. паттерн обслуживания множества пользователей, вебня и прочая херня).
для аналитки (DWH, OLAP) pg либо настраивают специальным образом (вероятно, под ваши запросы можно сделать специальный конфиг и выполнение больше не будет упираться в ядро. Нужно смотреть на каких именно операциях проседает), либо делать шардинг по нескольким субд вашей бд.
в общем, через костыли, но проблема часто как-то решаема.
> а у них насколько я знаю этого даже в широких планах нет, какието отдельные вещи параллелят но не сам основной движок
Его не просто распараллелить, прежде, например, нужно сделать нормальное партиционирование, а потом вашу задачу. Вот голосовалка фич pg:
http://postgresql.uservoice.com/forums/21853-general
Ваш кейс стоит на 3ем месте, так что скорее всего его скоро начнут делать.
| |
4.39, vovans (ok), 22:20, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
На серверах всегда было много ядер и быстрые диски. Это на десктопах кол-во ядер растёт.
| |
|
|
2.25, Михрютка (ok), 12:39, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
а дак начинали вроде делать, но заглохло. станичка в постгресовской вики с 2009 года висит с недописанным туду.
динамическое партиционирование и параллельные запросы - штука нетривиальная, пока кого-то из клиентов с толстыми ЕТЛ запросами не припрет, и он сам не напишет или не заплатит, вряд ли кто не пошевелится. кто будет юзать ворованный оракл, кто - покупной мссикель.
| |
|
3.26, ананим (?), 13:50, 11/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
можно подумать мссиквел намного дальше ушёл, ха!
зыж
и почему оракл ворованный, а мссиквел купленный?
стандартная редакция оракла даже дешевле мссиквела, а если говорим уже о таких вот нагрузках, то без сервиспаков на ворованном далеко не уедешь.
| |
|
4.28, Михрютка (ok), 14:18, 11/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
> можно подумать мссиквел намного дальше ушёл, ха!
по сравнению с нулем - не вижу смысла обсуждать, намного или ненамного. что смущает-то?
> зыж
> и почему оракл ворованный, а мссиквел купленный?
> стандартная редакция оракла даже дешевле мссиквела, а если говорим уже о таких
> вот нагрузках, то без сервиспаков на ворованном далеко не уедешь.
"если уж говорим о таких вот нагрузках", то 4-сокетовый вариант оракла да, он в тему.
последний раз, как я проверял, разница была сильно не в пользу оракла, но это было давно, возможно, что-то изменилось. и в любом случае совершщенно неважно. я мог бы написать "ворованный информикс" и "купленный сайбейс", сути примера это не изменило бы. разве что вылез бы какой-нибудь информикс-фаг и начал нудить "А чо сразу информикс?"
| |
|
5.31, ананим (?), 15:42, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
>по сравнению с нулем - не вижу смысла обсуждать, намного или ненамного. что смущает-то?
с нулём? :D
угу
http://www.sql.ru/articles/mssql/2004/04112301resolvingblockingproblems.shtml
>Блокировки присутствуют в любой реляционной системе управления базами данных (СУБД), т.к. на блокировках основана работа механизма обслуживания параллельных запросов.
в синтетических тестах это да, прокатывает. в реальной системе только мешает.
ха! блокировки при селекте - фича на любителей. из разряда кожаных масках.
зыж
фичи коммерческих субд порой больше рассчитаны на рекламный проспект, чем на использование.
хотя именно в данном конкретном случае оракл хоть это умеет правильно.
| |
|
|
7.33, ананим (?), 18:42, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
чё сказать то хотел?
пояснения требуются?
>>>Блокировки присутствуют в любой реляционной системе управления базами данных (СУБД), т.к. на блокировках основана работа механизма обслуживания параллельных запросов.
блокировки то присутствуют в любой РСУБД, но НЕ в любой на блокировках основана работа механизма обслуживания параллельных запросов. :D
| |
|
|
9.36, ананим (?), 22:02, 11/09/2012 [^] [^^] [^^^] [ответить] | +/– | Хо В яндексе ещё надо знать какой вопрос задавать А посему, ваши не нулевые па... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
3.49, Аноним (-), 01:15, 13/09/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
Понятно что параллелить построение плана сложно, но когда он построен, почему бы не распараллелить его исполнение? В простейшем случае если известно что придется просмотреть определенный диапазон строк, то почему бы не разделить его на поддиапазоны и не натравить на каждый отдельное ядро?
| |
|
2.48, XoRe (ok), 23:34, 12/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Блин, а ктонить в курсе, полное задействование проца (всех ядер) для одного
> запроса, т.е. его распараллеливание, когданить сделают? или это для постгреса не
> реально?
Когда у вас будет 10-100 одновременных запросов к БД и будут загружены даже 24 ядра, вы поймете, что 1 запрос на ядро - это благо)
Лучше запрос одним ядром обрабатывается и не тратит время на переключения ядер.
А если у вас 1-2 одновременных запроса к БД, нужно менять логику работы с БД, если хотите параллелить.
Самым узким местом должен быть жесткий.
Если узкое место в чем-то другом, значит, есть место для оптимизации)
| |
|
3.50, Аноним (-), 01:32, 13/09/2012 [^] [^^] [^^^] [ответить] | +/– | Параллельных запросов нет, они приходят редко, по одному, но должны выполняться ... большой текст свёрнут, показать | |
3.51, stopa85 (ok), 12:41, 13/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Мое мнение что 1 запрос-одно ядро хорошо для OLTP систем,
1 запрос-много ядер может быть хорошо для OLAP систем, особенно для "гибридных" систем, когда данные храняться в несовсем оптимальном для OLAP-систем виде.
Как бы там нибыло, на эту фишку есть спрос - значит и ситуации когда она необходима бывают.
| |
|
4.52, XoRe (ok), 14:27, 13/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Мое мнение что 1 запрос-одно ядро хорошо для OLTP систем,
> 1 запрос-много ядер может быть хорошо для OLAP систем, особенно для "гибридных"
> систем, когда данные храняться в несовсем оптимальном для OLAP-систем виде.
> Как бы там нибыло, на эту фишку есть спрос - значит и
> ситуации когда она необходима бывают.
Для удовлетворения этого спроса уже сейчас есть предложения - кластеры, масштабируемые БД и т.д.
Например, можно использовать MongoDB - развести инфу по куче узлов.
И работать с данными в стиле MapReduce.
Будет очень шустро.
Если не хочется велосипедить, можно взять уже существующие OLAP системы.
Хотя они, вроде бы, не дешевые.
P.S.
Но всегда можно сказать "не не не, я не хочу ничего менять, я подожду, пока программисты Postgresql сделают это для меня бесплатно")
| |
|
5.53, Аноним (-), 14:44, 13/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
Гражданин начальник говорит раз постгрес так не может значит нах его, досадно однако.
| |
5.54, Михрютка (ok), 16:51, 13/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Когда у вас будет 10-100 одновременных запросов к БД и будут загружены
> даже 24 ядра, вы поймете, что 1 запрос на ядро -
> это благо)
> Лучше запрос одним ядром обрабатывается и не тратит время на переключения ядер.
> А если у вас 1-2 одновременных запроса к БД, нужно менять логику
> работы с БД, если хотите параллелить.
> Самым узким местом должен быть жесткий.
> Если узкое место в чем-то другом, значит, есть место для оптимизации)
Made my day.
> Для удовлетворения этого спроса уже сейчас есть предложения - кластеры, масштабируемые
> БД и т.д.
> Например, можно использовать MongoDB - развести инфу по куче узлов.
> И работать с данными в стиле MapReduce.
> Будет очень шустро.
Twice.
| |
|
|
|
|
1.5, sam002_tmp (?), 22:50, 10/09/2012 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Отлично... JSON, интервалы, м-м-м!
Темпы разработки очень сильно пугают - в debian stable ещё нет 9.1, а они уже 9.2 пустили. Подскажите, а есть ли у postgres постоянные выпуски (помимо development) и LT версии?
| |
|
2.7, Аноним (-), 23:14, 10/09/2012 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да ладно вам) пугают) Одна новая стабильная версия в год, потом каждая 3-5 лет поддерживается, на протяжении этого времени для каждой выходят доработки, оптимизации, исправления - по моему отлично, чем не LT? Сходите на офсайт и посмотрите. Ну а что там debian для вас заготовил это чисто ваши проблемы.
| |
2.12, Аноним (-), 23:43, 10/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
Разработчики PostgreSQL поддерживают четыре ветки одновременно + ветка разработки.
| |
|
1.27, Владимир Z (?), 14:07, 11/09/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Самая классная реляционная СУБД для проектов любого масштаба (от небольших сайтов до корпоративного учета).
Молодцы! Еще и такой прогресс.
| |
|
2.34, www2 (??), 19:04, 11/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
А что там обновлять-то? По-моему клиентом MySQL от 3 версии до сих пор можно подключаться к MySQL хоть 5-й версии.
| |
|
3.37, Аноним (-), 22:15, 11/09/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А что там обновлять-то? По-моему клиентом MySQL от 3 версии до сих
> пор можно подключаться к MySQL хоть 5-й версии.
можно, но это же не значит что он будет использовать новые функции, а в 9.2 появилась такая штука как построчное получение данных с сервера без курсора.
| |
|
4.42, Аноним (-), 00:41, 12/09/2012 [^] [^^] [^^^] [ответить]
| +/– |
> можно, но это же не значит что он будет использовать новые функции,
> а в 9.2 появилась такая штука как построчное получение данных с
> сервера без курсора.
ну так это в libpq, текущая версия JDBC libpq не использует.
Другое дело, добавить поддержку новых типов.
| |
4.55, www2 (??), 17:10, 10/10/2012 [^] [^^] [^^^] [ответить]
| +/– |
>> А что там обновлять-то? По-моему клиентом MySQL от 3 версии до сих
>> пор можно подключаться к MySQL хоть 5-й версии.
> можно, но это же не значит что он будет использовать новые функции,
> а в 9.2 появилась такая штука как построчное получение данных с
> сервера без курсора.
Это что же, до сих пор нельзя было обрабатывать таблицы не умещающиеся в оперативной памяти?
А то я вот недавно с удивлением обнаружил, что клиент MySQL (любой, касается и консольного и Perl DBI и PHP) по умолчанию при выполнении селекта сначала всасывает в оперативку результат запроса целиком. Долго ломал голову, как мне слить нужные данные из таблицы в 70 гигабайт, потом всё-таки нашёл решение.
| |
|
|
|
|