|
skip locked без блокировки
|
|||
---|---|---|---|
#18+
Добрый день. Суть задачи такая. Есть два независимых процесса. Первый в цикле партиями выгребает записи из таблицы select for update limit skip locked и изменяет их. Второй процесс должен запросить записи из этой же таблицы только для чтения, но пропустив записи, заблокированные первым процессом. Т.е. как бы skip locked, но без for update Суть в том, что если эти два процесса сработают одновременно(что может быть), то процесс только чтения залочит записи и процесс обновления их пропустит, что как раз нужно исключить. Подскажите, пожалуйста, как это можно реализовать. Вешать внешнюю отдельную блокировку для синхронизации процессов оооочень не хочется. Заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 10:20 |
|
skip locked без блокировки
|
|||
---|---|---|---|
#18+
Antipich, На сколько мне известно PostgreSQL версионник. Зачем из версионника делать блокировочника, не понятно. Люди столько человеко-часов положили, чтобы блокировок было как можно меньше. И чтение не блокировала таблицу. Может для вашей задачи взять другой инструмент, где такое поведение было бы by default? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 13:56 |
|
|
start [/forum/topic.php?fid=53&fpage=79&tid=1996738]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 484ms |
0 / 0 |