|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Dmitry Popov 2:5020/400 19 Feb 2001 15:48:03 To : All Subject : Re: Re[2]: Проблема с бо льшими таблицами -------------------------------------------------------------------------------- On Mon, 19 Feb 2001, Vladimir Pavlikov wrote: > Hello! "Dmitry Popov" <popov@krista.ru> wrote: > > Hо: в версионниках возможен один интересный глюк, невозможный в > > классическом блокировочнике. Хотя версионник и соблюдает все стандартные > > требования к транзакциям (A.C.I.D.), это ещё не гарантирует > > сериализуемость. Оно означает, что результат параллельного исполнения > > набора транзакций должен соответствовать какой-нибудь последовательности > > их исполнения по отдельности. Так вот, в "стерильном" версионнике > > без блокировок некоторые последовательности действий в параллельных > > транзакциях могут дать несериализуемый результат. В подробности > > углубляться лениво, но скажу лишь, что лечится блокировками. Потому > > в IB и есть простенький механизм блокировок на уровне таблиц. Hа такой > > крайний случай. > > Блокировки в IB самые "настоящие", отнюдь не на уровне таблиц/страниц, > а на уровне записей. Возможно, это и есть основание для вышенаписанного Чушь. Hету на уровне записей никаких блокировок. Роль блокировки может сыграть тот факт, что к версии записи, которую хочет обновить данная транзакция (то есть дописать к ней свою версию) уже существует другая, более поздняя версия. Поскольку версии должны образовывать строго линейную последовательность для каждой записи, IB натолкнувшись на такую ситуацию либо ждёт в надежде что "мешающая версия" попадёт под rollback (если ожидание дозволено режимом транзакции), либо завершает обновление ошибкой. Hекоторые граждане данным фактом пользуются, чтобы имитировать блокировку записи. Про блокировки уровня таблиц я уже писал. Третье явление, тоже называемое блокировками и часто сбивающее с толку несведущих людей - блокировки считанных в память страниц БД процессами или потоками, обслуживающими клиентские соединения. Данный вид блокировок к транзакциям отношения вообще не имеет и предназначен исключительно для сохранения физической целостности - чтобы несколько процессов или потоков не правили один и тот же буфер одновременно. Именно этим делом заведует в IB процесс или поток менеджера блокировок. > заблуждения? А может и нет - лучше углубиться в подробности. > -- > Владимир Павликов. -- Дмитрий Попов, mailto:popov@krista.ru --- ifmail v.2.15dev5 * Origin: Krista NPO (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/10584165aa34a.html, оценка из 5, голосов 10
|