Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
спасибо за новость. Давайте поподробнее, кто в этом разбирается: что это дает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 10:24 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
PCContra, Там есть короткий тест на чтение. 743мс против 213мс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 10:58 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
jan2aryPCContra, Там есть короткий тест на чтение. 743мс против 213мс.какбе до тех пор, пока неясно, что это алгоритмически -- совершенно [нас много, нас, может быть, рать], в общем -- неважно, что там за миллисекунды. пока поиск даёт что-то мало (для не носителя) вменяемое. http://grokbase.com/p/postgresql/pgsql-hackers/0753j91ka9/sequential-scans http://rhaas.blogspot.fr/2015/03/parallel-sequential-scan-for-postgresql.html а читать по буквам лень хочецца увидеть цей физический девайс хранения, с параллельными головками [на чтение хотя бы]. а иначе -- это какие-то мухи в голове, а не параллелизм. (т.е. обрезаем ресурс на процесс, а потом копим процессы, чтобы сложить квоту обрезанного ресурса в ударную псевдопараллельную свинью, вместо того, чтобы выделить процессу сразу вот это вот всё) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 11:29 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwqхочецца увидеть цей физический девайс хранения, с параллельными головками [на чтение хотя бы].Любая дисковая полка с количеством дисков больше одного :) Как это в оракле и, скорее всего к тому же идет постгрес: сервер порождает несколько процессов, каждый из которых читает свою часть данных и выдает на гора свой результат родителю, который это все собирает в результирующий набор. Таких конвейеров может быть несколько. В идеале бы еще и читать в обход кеша и даже исключая запись WAL, как бы это ни страшно звучало. Полезно для хранилищ, агрегирующих запросов, ETL-ей, построений индексов, сортировок... Насколько я понял, с реализацией Parallel Sequential Scan есть проблемы в коммуникации и синхронизации между порожденными процессами, ну и планировщик тоже надо научить соответствующим навыкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 12:26 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
jan2aryqwwqхочецца увидеть цей физический девайс хранения, с параллельными головками [на чтение хотя бы].Любая дисковая полка с количеством дисков больше одного :) какбе параллелить чтение с полок -- дело драйверов железа, а не субд. лично мне вот так кааца. ресурс "полка" -- всё равно один. все к нему "в очередь, сукины дети" (с) -- и какой же, зпт, тут параллелизем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 13:43 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwq, Ну вот если один процесс не может переварить потенциальную пропускную способность на вводе-выводе, почему бы не отдать ее на растерзание Х процессам? Если очереди нет и полка успевает отдавать все что просят, и успевала бы еще Y раз по столько же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 13:48 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwqjan2aryпропущено... Любая дисковая полка с количеством дисков больше одного :) какбе параллелить чтение с полок -- дело драйверов железа, а не субд. лично мне вот так кааца. ресурс "полка" -- всё равно один. все к нему "в очередь, сукины дети" (с) -- и какой же, зпт, тут параллелизем ? так разве ПГ с драйверами железа общается? Не с ОС ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 14:33 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwqкакбе параллелить чтение с полок -- дело драйверов железа, а не субд.Параллелизм бесполезен, когда время обработки меньше времени поступления очередной порции, а цикл взаимодействия между процессом субд и диском ставится в конвеер с нулевыми издержками. Можно прикинуть. Диск с 100 тысяч iops (4к) дает процессору 2.5ГГц около шести тактов на обработку одного байта. Что там делает secscan? - разбор тупликов с учетом транзакции, всякие LRU в shared buffers ... Полагаю шансы занять параллель у такой конфигурации есть даже, если моя асинхронность равна нулю ©. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 15:26 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
p2.qwwqкакбе параллелить чтение с полок -- дело драйверов железа, а не субд.Параллелизм бесполезен, когда время обработки меньше времени поступления очередной порции, а цикл взаимодействия между процессом субд и диском ставится в конвеер с нулевыми издержками. Можно прикинуть. Диск с 100 тысяч iops (4к) дает процессору 2.5ГГц около шести тактов на обработку одного байта. Что там делает secscan? - разбор тупликов с учетом транзакции, всякие LRU в shared buffers ... Полагаю шансы занять параллель у такой конфигурации есть даже, если моя асинхронность равна нулю ©. зачем cpu обрабатывать каждый байт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 15:34 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
Ivan Durakзачем cpu обрабатывать каждый байт?Во-первых. Это как придираться к фразе "стоимость перевозки одного пассажира в метро...". Не всех перевозят персональными поездами по каждой станции. В-нулевых. "один" и "каждый" кардинальная подмена понятий. Но! "обрабатывать" все равно придется "все" байты - машинными словами movs'ами или чем еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 16:22 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
ALL, parallel вроде как давно в 9.6 запилили. удалось кому его номано попользовать ? а то что не заталкиваю -- оно либо не берется параллелить, либо результат распараллелинья с гулькин пуп. специально например делаю Код: plaintext 1. 2. 3. а то камней , бают, под допупа, и чо ? там какие то подвижки в параллельном планировании проистекают ? или всё рвут неделимый дисковый ресурс на ангельские флаги , хехе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 20:01 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwq, Работает, вполне себе неплохо. А какая версия базы стоит? И какие настройки правились, в особенности `max_worker_processes` и `max_parallel_workers_per_gather`? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 20:14 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
vyegorovqwwq, Работает, вполне себе неплохо. а пару планов с и без можно ? так, чтобы порвалО, т.с. для понимания, когда оно что--то может дать. кроме нихера. а так я пока на своем вожусь. в сеансе меняю парамсы, запихиваю, сравниваю. тупая какая--то хня, имхо. очень тупайя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 21:15 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwq, Работает вполне: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. Как то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 23:44 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, понятно, //но без буферов неспартивна. т.е. пока оно умеет очень простые вещи параллелить, а именно --фильтр, усекающий данные на почти 2 порядка, который индексно в один поток был бы вероятно быстрее. а читает оно быстрее в разы, чем фильтрует одним камнем ? (буферсы таки интересны) а растащить агрегат по группам ? не ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2017, 12:42 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwqMaxim Boguk, понятно, //но без буферов неспартивна. т.е. пока оно умеет очень простые вещи параллелить, а именно --фильтр, усекающий данные на почти 2 порядка, который индексно в один поток был бы вероятно быстрее. а читает оно быстрее в разы, чем фильтрует одним камнем ? (буферсы таки интересны) а растащить агрегат по группам ? не ? На IO-bound нагрузке на ПРОСТЫХ seq scan одно ядро у меня где то 400MB/s прожевывает с диска. 3 ядра забивают полосу NVME накопителя (1.2GB/s) на сервере где я тестил. Когда вы попробуете без индекса в JSONB искать - вам сразу станет ясно зачем оно надо (там просто по CPU очень дорогая операция будет). >>а растащить агрегат по группам ? не ? почем не... умеет уже (впрочем тут оно сильно диском лимитируется... in-memory и на 32 ядра раскидываются нормально): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2017, 19:47 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, понятно, но тупой аппенд , возникающий в количествах как union all , он параллелить не будет ни за что. пусть обе части тяжелы вычислительно, а результаты их компактны хотя -- чего, казалось бы, уж проще. тайна сия велика есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2017, 20:28 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
qwwqMaxim Boguk, понятно, но тупой аппенд , возникающий в количествах как union all , он параллелить не будет ни за что. пусть обе части тяжелы вычислительно, а результаты их компактны хотя -- чего, казалось бы, уж проще. тайна сия велика есть. Какие то вещи реализованы. Какие то - нет. Вот и все. В 10.0 - будет больше всего паралеллится. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2017, 21:41 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
может кто растолковать, как вообще возможно распаралелить индексный доступ. Индекс же на самом нижнем уровне представляет из себя связанный список. Или параллелится фильтр данных, полученных из индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2017, 11:08 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
pihelможет кто растолковать, как вообще возможно распаралелить индексный доступ. Индекс же на самом нижнем уровне представляет из себя связанный список. Или параллелится фильтр данных, полученных из индекса? Смотрите в рассылке -hackers и в исходниках. :) Начиная где то вот отсюда https://commitfest.postgresql.org/11/849/ -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2017, 11:15 |
|
||
|
Parallel Sequential Scan
|
|||
|---|---|---|---|
|
#18+
pihel, Читайте самое первое сообщение в этой ветке: https://www.postgresql.org/message-id/flat/CAA4eK1%2Bzo4O6ak5ew68SB5EZvZ1j2hxb4af3gaQ_h%3DqAg40vWg%40mail.gmail.com#CAA4eK1+zo4O6ak5ew68SB5EZvZ1j2hxb4af3gaQ_h=qAg40vWg@mail.gmail.com]https://www.postgresql.org/message-id/flat/CAA4eK1 zo4O6ak5ew68SB5EZvZ1j2hxb4af3gaQ_h=qAg40vWg@mail.gmail.com#CAA4eK1 zo4O6ak5ew68SB5EZvZ1j2hxb4af3gaQ_h=qAg40vWg@mail.gmail.com В данный момент Parallel Scan только для btree реализован. Примерно так (вольный перевод): 0. запускается нужное кол-во параллельных работяг (оценка планировщика) 1. первый спускается по дереву индекса до “листов” — связного списка 2. читает блок из связного списка 3. фиксирует адрес следующего блока в связном списке в разделяемой памяти 4. будит следующего из незянятых работяг и начинает процессить содержимое блока (отдавать записи) 5. “следующий” работяга повторяет аглоритм с пункта #2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2017, 18:31 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=67&tid=1996253]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
95ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 189ms |

| 0 / 0 |
