Доброго времени суток!

В статье про транзакции на ibase.ru есть такой отрывок
Есть еще один интересный момент. Проверяя режимы транзакций я обнаружил, что если одна 
транзакция consistency блокирует таблицу в режиме shared_write, то другая транзакция 
consistency при попытке открыть таблицу в режиме shared_read "повиснет" (именно 
в момент открытия таблицы). В то же время попытка открыть эту же таблицу в режиме 
shared_write завершается полным успехом. Разумеется, зависание происходит уже на попытке 
редактирования, но это уже несущественно. Т.е. как указано в таблице выше блокировки 
shared_write действительно не конфликтуют, но вот блокировки shared_write и shared_read 
конфликтуют. Не знаю, чем это вызвано - или так действительно должно работать, или это 
относится к странностям реализации fibc/IBX (хотя вряд ли).

С удивлением обнаружил, что на 2.1 (во всяком случае, 2.1.0.16865) это
остается в силе (проверял через IBX 6.08). Это тем более странно, что
lock_read+shared, как я понимаю, ничего не блокирует. Баг?

С уважением, Евгений



Ответить