Сравнение Borland InterBase 4.x, Sybase SQL Server и Microsoft SQL Server - Обработка транзакций. InterBase

ОГЛАВЛЕНИЕ

6.4. InterBase

Borland InterBase полностью поддерживает модель OLCP. Уникальная архитектура многоверсионности записей гарантирует, что пользователи транзакций  OLTP не обнаружат блокировок при обновлении данных, используемых транзакциями DSS, в то время как транзакциям DSS гарантируется воспроизводимое чтение. В том-же сценарии: когда аналитик начинает транзакцию, IB создает идентификатор этой транзакции. Когда оператор начинает свою транзакцию, то IB для него тоже выделяет идентификатор транзакции. Если обнаруживаются другие активные транзакции на этот момент, то IB для обеспечения воспроизводимости чтения создавать версии записей, модифицируемые любой из других активных транзакций. Во время действия транзакции аналитика ему видны только версии записей, связанные с его транзакцией. Во время действия транзакции оператора, ему видны тоже только те версии записей, которые связаны с идентификатором его транзакции. Таким образом аналитик и оператор изолированы друг от друга на время действия их транзакций, независимо от их длительности. При завершении обоих транзакций новые версии записей оператора становятся видны аналитику, а старые версии записей удаляются.

Любые другие записи, изменяемые во время действия упомянутых транзакций автоматически обрабатываются  IB тем-же способом. Это стандартное поведение IB и разработчик не должен прилагать никаких дополнительных усилий для реализации такого режима работы. Кроме этого, пользователь не столкнется со страничными, индексными или табличными блокировками ни в какой ситуации (Д.К. - естественно, если два пользователя попытаются отредактировать одновременно одну и ту-же запись, то возникнет конфликт обновления, который блокировкой в общем-то не является). Вместо блокировок IB обеспечивает версии записей, которые всегда представляют целостный вид на базу данных во время действия транзакции. Многоверсионность записей гарантирует воспроизводимость состояния БД как для чтения, так и возможность обновления данных независимо от уровня изоляции транзакции. Это снижает сложность и время разработки клиентских программ, и обеспечивает доступность корпоративных данных в любой момент.