|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Andrew Lesnichenko 2:5020/400 27 Dec 2002 05:14:54 To : Sergey Prach Subject : Re: Синхронизация дос тупа к БД -------------------------------------------------------------------------------- 0 Sergey Prach wrote: > Hi! > > "Dmitry Kuzmenko" <kdv@ibase.ru> сообщил/сообщила в новостях следующее: > news:3E0B045F.8A73145C@ibase.ru... >>на странице данных, там где и записи. версии - это "дельты", т.е. >>буквально, если есть запись, и ей сделали update, >>то на странице будет >>а) запись >>б) версия записи, где лежат только те поля, которые обновились (и то их >>разница между оригинальной записью). > > Т.е. для обеспечения "версионности" БД необхомимо как минимум наличе > незаполненного пространства в страницах. При этом это значение должно не > превышать 50%, иначе даже для двух транзакций понадобится захват новых > страниц. Если так, то это означает, что любая операция чтения должна > прокачивать как минимум в 2 раза больше страниц, чем требуется по минимуму > для блокировочника, для чтения той же порции данных. И где же здесь бережное > отношение к системным ресурсам. > >>При этом страница блокируется только на момент создания этой версии, > дальше >>другие транзакции могут работать с этой страницей. > > Ты опустил один факт указать. В исходной странице должно быть указано, > что версия "а" - реальная, а версию "б" еще не закомичена, и ее не следует > пока принимать за чистую монету. т.е фактически сервер должен прочитать и > "а", и "б", и сам выгребать где помои, а где булочки. Так? В случае с Oracle: 1. В каждом блоке хранится "время создания" (SCN) и каждый читатель при старте получает SCN на этот момент. Hа основании этого принимается решение, какие блоки нужно реконструировать (в прошлое). Hезакомиченные транзакции еще не имеют SCN'а и эти блоки пропускаются. При этом понятно, что все чтение идет по памяти (раз кто-то эти блоки уже использует) ... 2. Писатели (insert/update/delete) никогда не делают реконструкцию, а всегда пользуются последней версией блока ... -- Andrew Lesnichenko --- ifmail v.2.15dev5 * Origin: Mobile TeleSystems (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/12242180c443e.html, оценка из 5, голосов 10
|