Size: a a a

pgsql – PostgreSQL

2021 February 28

AT

Andrey Tatarnikov in pgsql – PostgreSQL
"ночи" нет
источник

ИЛ

Иван Лещёв in pgsql – PostgreSQL
Федор Гулин
Ну я б бежал и апдейтил или по одному ночью или батчами по 100.(1000,10000 )
Опытным путем
Хотя м.б долго
Надо смотреть скорость и насколько критично чтобы все было закончено скажем за ночь
50 миллионов ночей?
источник

кн

коля николай... in pgsql – PostgreSQL
Andrey Tatarnikov
Долго. Пока кажется, что подменить таблицу быстрее
сделай тригер который будет сохранять все операции над исходной таблицей. Склонируй таблицу, поменяй дату и накати изменения (получится типо логическая репликация)
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Операции, которые набегут, я и так достану, это не сложно - там очень ограниченный объем того, что может в теории набежать. Было больше интересно как люди подобное решают. Батчи исторически не рассматривались, потому что долго и много накладных расходов. Апдейт всем куском ни разу не пробовали, может он за несколько часов и пролез бы, а может и нет
источник

кн

коля николай... in pgsql – PostgreSQL
Andrey Tatarnikov
Операции, которые набегут, я и так достану, это не сложно - там очень ограниченный объем того, что может в теории набежать. Было больше интересно как люди подобное решают. Батчи исторически не рассматривались, потому что долго и много накладных расходов. Апдейт всем куском ни разу не пробовали, может он за несколько часов и пролез бы, а может и нет
в теории фулл апдейт от бачей отличаться будет только обширным блоком
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Ну вот это в теории. А чтобы проверить надо или попробовать, или даже не знаю что ещё предпринять :)
источник

АА

Артур Асриян... in pgsql – PostgreSQL
а батчи в параллельных сессиях ещё никто не предлагал запустить?
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Раздать батчи десятку клиентов и посмотреть что будет?
источник

кн

коля николай... in pgsql – PostgreSQL
Andrey Tatarnikov
Ну вот это в теории. А чтобы проверить надо или попробовать, или даже не знаю что ещё предпринять :)
могу сказать, что страницы будут перезаписываться полностью. Для кортежей из 30 полей это очень больно. Плюс будет использоваться буфферный кэш и хлог. Так что будь то фулл апдейт или кучу процессов с параллельными бачами — все упрется в конфиги и железо (не убейте ваш кластер)
источник

кн

коля николай... in pgsql – PostgreSQL
коля николай
могу сказать, что страницы будут перезаписываться полностью. Для кортежей из 30 полей это очень больно. Плюс будет использоваться буфферный кэш и хлог. Так что будь то фулл апдейт или кучу процессов с параллельными бачами — все упрется в конфиги и железо (не убейте ваш кластер)
накладных расходов при апдейте будет очень много
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
коля николай
могу сказать, что страницы будут перезаписываться полностью. Для кортежей из 30 полей это очень больно. Плюс будет использоваться буфферный кэш и хлог. Так что будь то фулл апдейт или кучу процессов с параллельными бачами — все упрется в конфиги и железо (не убейте ваш кластер)
Вот из этих соображений до сих пор только клонированием таблиц и решаем
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Заодно индексы перестраиваются и считай вот тебе vacuum full до кучи
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Сплошное счастье
источник

кн

коля николай... in pgsql – PostgreSQL
не понимаю зачем вы клонируете таблицу
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Andrey Tatarnikov
Операции, которые набегут, я и так достану, это не сложно - там очень ограниченный объем того, что может в теории набежать. Было больше интересно как люди подобное решают. Батчи исторически не рассматривались, потому что долго и много накладных расходов. Апдейт всем куском ни разу не пробовали, может он за несколько часов и пролез бы, а может и нет
Несколько часов на таких объёмах?!
Тогда да, можно думать о "хитростях"... но я бы лучше подумал о том, не стоит ли "усилить" т.н. сервер уже. ;)
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Yaroslav Schekin
Несколько часов на таких объёмах?!
Тогда да, можно думать о "хитростях"... но я бы лучше подумал о том, не стоит ли "усилить" т.н. сервер уже. ;)
А неизвестно сколько. На прошлом конфиге были часы, однажды батчами по 10000 обновляли 100М - сутки. Но там и поле было индексируемое и вообще. С тех пор прод переехал в амазон в жирный инстанс, там и диски nvme и памяти много. Но пробовать что-то как-то боязно все равно :)
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
Andrey Tatarnikov
А неизвестно сколько. На прошлом конфиге были часы, однажды батчами по 10000 обновляли 100М - сутки. Но там и поле было индексируемое и вообще. С тех пор прод переехал в амазон в жирный инстанс, там и диски nvme и памяти много. Но пробовать что-то как-то боязно все равно :)
в амазоне точно nvme, или gp2?
источник

кн

коля николай... in pgsql – PostgreSQL
Andrey Tatarnikov
А неизвестно сколько. На прошлом конфиге были часы, однажды батчами по 10000 обновляли 100М - сутки. Но там и поле было индексируемое и вообще. С тех пор прод переехал в амазон в жирный инстанс, там и диски nvme и памяти много. Но пробовать что-то как-то боязно все равно :)
ну типо если вы обновляете через limit offset то тут и годы пройдут
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Darafei Praliaskouski
в амазоне точно nvme, или gp2?
Вендор говорит nvme. SaaS же, н кому верить нельзя.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Andrey Tatarnikov
А неизвестно сколько. На прошлом конфиге были часы, однажды батчами по 10000 обновляли 100М - сутки. Но там и поле было индексируемое и вообще. С тех пор прод переехал в амазон в жирный инстанс, там и диски nvme и памяти много. Но пробовать что-то как-то боязно все равно :)
А тестового сервера нет? Если есть — можно было бы узнать хоть примерно.
источник