Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Вопрос по параметрам *scale_factor  [new]
Shab
Member

Откуда: Moscow
Сообщений: 242
Добрый день!

Например смотрим описание:

autovacuum_vacuum_insert_scale_factor (floating point)

Задаёт процент от размера таблицы, который будет добавляться к autovacuum_vacuum_insert_threshold при выборе порога срабатывания команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы). Задать этот параметр можно только в postgresql.conf или в командной строке при запуске сервера. Однако данное значение можно переопределить для избранных таблиц, изменив их параметры хранения.

Смотрим конфиг:
autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts
# before vacuum; -1 disables insert
# vacuums

Вопрос: К 1000 прибавляется 0.2 или 20. Какая тут формула?
14 апр 21, 23:22    [22309095]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Shab
Добрый день!

Например смотрим описание:

autovacuum_vacuum_insert_scale_factor (floating point)

Задаёт процент от размера таблицы, который будет добавляться к autovacuum_vacuum_insert_threshold при выборе порога срабатывания команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы). Задать этот параметр можно только в postgresql.conf или в командной строке при запуске сервера. Однако данное значение можно переопределить для избранных таблиц, изменив их параметры хранения.

Смотрим конфиг:
autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts
# before vacuum; -1 disables insert
# vacuums

Вопрос: К 1000 прибавляется 0.2 или 20. Какая тут формула?


1000 + (количество строк таблицы)*0.2
как и для остальных scale factor

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
14 апр 21, 23:49    [22309106]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Shab
Member

Откуда: Moscow
Сообщений: 242
Maxim Boguk,
Спасибо.

Текст доки явно не на высоте.
14 апр 21, 23:56    [22309108]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Shab
Maxim Boguk,
Спасибо.

Текст доки явно не на высоте.


Не читайте кривые русские переводы.
На английском там все однозначно
Specifies a fraction of the table size to add to autovacuum_vacuum_insert_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
15 апр 21, 00:06    [22309113]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Павел Лузанов
Member

Откуда:
Сообщений: 803
English
Specifies a fraction of the table size to add to autovacuum_vacuum_insert_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).

Русский
Задаёт процент от размера таблицы, который будет добавляться к autovacuum_vacuum_insert_threshold при выборе порога срабатывания команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы).


Maxim Boguk

Не читайте кривые русские переводы.
На английском там все однозначно

Можно уточнить, что именно в этом фрагменте переведено не так. Я передам куда надо и перевод будет исправлен.
15 апр 21, 10:45    [22309219]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Павел Лузанов
English
Specifies a fraction of the table size to add to autovacuum_vacuum_insert_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).

Русский
Задаёт процент от размера таблицы, который будет добавляться к autovacuum_vacuum_insert_threshold при выборе порога срабатывания команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы).


Maxim Boguk

Не читайте кривые русские переводы.
На английском там все однозначно

Можно уточнить, что именно в этом фрагменте переведено не так. Я передам куда надо и перевод будет исправлен.


Как минимум перевод в этом месте fraction как процента (а не как доли) не просто некорректен а misleading.
Чтобы понять что в этом месте 1 это не 1% а 100% - надо внимательно дочитать до конца следующее предложение.
Как я понял зависли именно на этом.
Ну и "от размера таблицы" я бы сказал криво и на русском и на английском так как речь идет о % от количества строк в таблице а не от размера в реальности.

Но можно и у автора топика уточнить что именно его запутало.
15 апр 21, 12:39    [22309298]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Shab
Member

Откуда: Moscow
Сообщений: 242
Maxim Boguk,

Для моего понимания должно быть ясно указано, что речь идет не про размер таблицы в байтах, а в количестве строк

Можно в догонку вопрос, а зачем придумано 2 параметра. Одним обойтись никак нельзя было? Например просто autovacuum_vacuum_insert_scale_factor. На что повлияет этот autovacuum_vacuum_insert_threshold если его отдельно никто не юзает

Сообщение было отредактировано: 15 апр 21, 14:23
15 апр 21, 14:26    [22309358]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Павел Лузанов
Member

Откуда:
Сообщений: 803
Maxim Boguk

Как минимум перевод в этом месте fraction как процента (а не как доли) не просто некорректен а misleading.
Чтобы понять что в этом месте 1 это не 1% а 100% - надо внимательно дочитать до конца следующее предложение.

Комментарий переводчика
То, что задаётся в интервале от 0 до 1, можно понять из дальнейшего описания "0.2 (20% от размера таблицы)", а вот почему процент лучше доли - ну "доля" двусмысленное слово, и здесь хорошей формулировки с ней я не придумал (Задаёт долю для размера?). Можно написать многословно, но я решил, раз представление процента показано, неоднозначности нет и этот вариант лучше.
Я даже подозреваю, что в русском "задаёт процент" - не то же самое, что "задаёт значение ... в процентах" (то есть процент не всегда 1/100), но это надо поисследовать.

Maxim Boguk
Ну и "от размера таблицы" я бы сказал криво и на русском и на английском так как речь идет о % от количества строк в таблице а не от размера в реальности.

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

Так что при желании можно написать в pgsql-docs.
15 апр 21, 15:21    [22309394]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Павел Лузанов
Member

Откуда:
Сообщений: 803
Shab
Можно в догонку вопрос, а зачем придумано 2 параметра. Одним обойтись никак нельзя было? Например просто autovacuum_vacuum_insert_scale_factor. На что повлияет этот autovacuum_vacuum_insert_threshold если его отдельно никто не юзает

Для очень-очень большой таблицы даже 1% строк будет очень большим числом. В таком случае можно scale_factor вообще в 0 поставить, а threshold-ом управлять количеством вставленных строк для запуска автоочистки.
15 апр 21, 15:27    [22309396]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Павел Лузанов
Shab
Можно в догонку вопрос, а зачем придумано 2 параметра. Одним обойтись никак нельзя было? Например просто autovacuum_vacuum_insert_scale_factor. На что повлияет этот autovacuum_vacuum_insert_threshold если его отдельно никто не юзает

Для очень-очень большой таблицы даже 1% строк будет очень большим числом. В таком случае можно scale_factor вообще в 0 поставить, а threshold-ом управлять количеством вставленных строк для запуска автоочистки.


Иногда на очень маленьких таблицах с 0-10 записей в активных приходится ставить тоже что то типа
autovacuum_vacuum_scale_factor=0, autovacuum_vacuum_threshold=10000, как минимум на старых версиях где нельзя отключить для них vacuum_truncate.
Приходится делать когда в таблице около 0 записей но 100-1000-10000 insert/delete per second.

Такая ситуация возникает когда надо транзакционно целостный асинхронный post-commit хук в приложении организовывать.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
15 апр 21, 23:06    [22309580]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по параметрам *scale_factor  [new]
Shab
Member

Откуда: Moscow
Сообщений: 242
Maxim Boguk, Павел,
Спасибо!
16 апр 21, 09:35    [22309678]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить