|
|
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
qwwq, Я делал что-то такое: - брал advisory_lock() на условное число - считал max(batch_id) + 1 и добавлял такую запись - отпускал advisory_lock() Это какой из 2-х типов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 17:01 |
|
||
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
vyegorovqwwq, Я делал что-то такое: - брал advisory_lock() на условное число - считал max(batch_id) + 1 и добавлял такую запись - отпускал advisory_lock() Это какой из 2-х типов? А. сами определите -- есть у вас очередь на ресурс (1) или нет (2) Б. а занахера ? это точно в задаче ведения каунтов по табличкам ? очевидно, что нет. очевидно, вы лочите ресурс, которого ещё нет в таблице. т.е. вы генерите "сиквенс без дырок" а могли бы лочить тот, который есть -- предыдущий batch_id, например. И только в случае отсутствия предыдущего -- лочить что-то ещё (не обязательно адвайзори -- мало ли в базе неиспользуемых (для святого дела лока) ресурсов. да хоть oid вашей таблички в pg_class). 2-й тип вам не лочит чтение [select sum(cnt) from counts where tablename ='mytable' ], или запись. задачи консистентного и чтения и записи одновременно там нет. как только она появляется -- возвращается очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 17:15 |
|
||
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
qwwq, Я понимаю, что если я повешу AFTER U/I/D триггер, в котором буду править (как надо) счётчик, то я получаю 1-й тип, поскольку сессии будут блокироваться на запись к единственной записи счётчика. Это так? А 2-й тип — это асинхронное изменение по таймеру, что-то вроде сбора статистики в ПЖ, но только под свои нужды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 17:22 |
|
||
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
vyegorov<> А 2-й тип — это асинхронное изменение по таймеру, что-то вроде сбора статистики в ПЖ, но только под свои нужды. "вы не поняли" (Сс) 2-й тип -- это синхронный сбор статистики в таблице статистики без уникъю, асинхронно в ней происходит только реорганизация кучек (из 10-ка записей вида (tablename,count) организуется одна (tablename,sum(count))). чтение из неё всегда синхронно снабжает вас консистентными данными о commited каунтах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 17:43 |
|
||
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
qwwq... асинхронно в ней происходит только реорганизация кучек (из 10-ка записей вида (tablename,count) организуется одна (tablename,sum(count))). чтение из неё всегда синхронно снабжает вас консистентными данными о commited каунтах. Имеется в виду параллельный сбор данных по частям (для скорости) с последующим обобщением? (Я не владею терминологией, и потому туплю.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 19:59 |
|
||
|
Не срабатывае boolean индекс при false
|
|||
|---|---|---|---|
|
#18+
vyegorov, имеетсяв виду то же , что и с уникъю , но без уникъю. -- чтобы конкуренты в очередях не стояли. а наделанные ими кучки подбирает воркер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1997353]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
11ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 473ms |

| 0 / 0 |
