Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
Если конкурентные процессы записывают в одну глобаль строки с уникальными ключами, есть ли смысл оформлять запись как транзакцию с блокировкой? Пробовал запускать из двух терминалов параллельно программку: w !,$zts," start" for i=1:1:10000000 do ; .;lock ^a .;tstart .s k=$i(^a) .s ^a(k)="" .;tcommit .;lock w !,$zts," end" 1.в таком виде (без транзакций и болкировок) - 96сек 2.как транзакции (раскомментарены tstart & tcommit) - 140 сек 3.как транзакции с блокировкой - 135 сек (на первый взгляд странно, что быстрее 2-го варианта, но может транзакциям легче, когда они работают последовательно, а не параллельно). Во всех трех вариантах результат был одинаковый - формировалась глобаль на 20млн строк. Никаких ошибок, типа нарушения структуры глобала и т.д. Так есть ли смысл в данном случае использовать транзакции и блокировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 12:57 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
DirksDR , если используется функция инкремента - блокировать дополнительно нет необходимости. Эта функция изначально гарантирует уникальный инеремент для всех процессов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 13:09 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
DirksDRТак есть ли смысл в данном случае использовать транзакции и блокировки? В данном примере нет смысла в блокировках и транзакциях... Если будут сбои в некоторых процессах, думаю что в глобале просто будут "дырки" с нумерацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 13:11 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
krvsa, То есть можно не бояться, что параллельные процессы попортят структуру базы/глобали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 14:19 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
DirksDR , конкретно в твоём примере никто ничего не попортит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 14:23 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
В первую очередь "разводить" процессы нужно проектирвоанием базы, чтобы как можно реже случалась необходимость работы с одними и теми же данными, блокировки должны быть максимально локализованными. Насчет транзкций - то же самое. Очень плохо загонять в транзакцию расчет на два часа. В конце концов, если будет сбой, то он не меньше чем два часа будет откатывать назад. Максимально отработка ошибок желательна без транзакций, и только в самых критичных моментах есть смысл в их использовании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 14:37 |
|
||
|
блокировки и транзакции, всегда ли обязательно?
|
|||
|---|---|---|---|
|
#18+
DirksDRЕсли конкурентные процессы записывают в одну глобаль строки с уникальными ключами, есть ли смысл оформлять запись как транзакцию с блокировкой? Блокировки можно и не использовать в принципе, если так уж хочется, а ключ реально уникален - в твоем примере $i уникален. Транзакции смысл имеет - ибо если у тебя случиться непонятное - вставленные данные нужно будет откатить. Без транзакций это будет весьма непросто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2010, 22:26 |
|
||
|
|

start [/forum/topic.php?fid=39&tid=1558051]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 410ms |

| 0 / 0 |
