powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор БД для быстрой работы с большими таблицами.
2 сообщений из 52, страница 3 из 3
Выбор БД для быстрой работы с большими таблицами.
    #32686626
Антилох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно заглянулЗачем версионнику ISOLATION LEVEL SERIALIZABLE. У него есть версионные механизмы поддержания целосности данных.

Как вы понимате "версионные механизмы поддержания целосности данных" ??? Если вы имеете ввиду непротиворечимость то это и есть ISOLATION LEVEL. Вне зависимости версионники это или блокировочник. Только в версионнике непротиворечимость достигается без блокировок по чтению.

Случайно заглянулДаже само понятие ISOLATION LEVEL противоречит понятию версионности , не так ли?

Не так.

Случайно заглянулАвтоматическое управление блокировками это не версионность.

А кто-то называл это версионостью ?

Случайно заглянулГрязное чтение тоже никого не блокирует, но это не версионность.

Вот когда ISOLATION LEVEL >= Read Committed и никто не блокируется по чтению, вот тогда это версионность. А Грязное чтение говорит об отсутствии версионности.
...
Рейтинг: 0 / 0
Выбор БД для быстрой работы с большими таблицами.
    #32686885
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Случайно заглянул
Не кажется ли вам что вы противоречите концепции версионности и
и предидущему оратору. Что говорит о том, что oracle не совсем версионник.
Зачем версионнику ISOLATION LEVEL SERIALIZABLE. У него есть версионные механизмы поддержания целосности данных. Даже само понятие ISOLATION LEVEL противоречит понятию версионности , не так ли?
В документации по oracle я нигде не встречал
описание понятия версионности. Может процитируете для меня?


1) Нет единой "концепции версионности", которой можно противоречить, система контроля версий может быть добавлена к любому типу менеджера транзакций, в том числе и "блокировочному", целью введения такого механизма является попытка избежать ожиданий при чтении или лишних откатов, за счет затрат на хранение версий данных.

Если рассматривать типы планировщиков транзакций то можно выделить следующие группы:
Код: plaintext
1.
2.
3.
4.
5.
1.Блокирующие:
   1.1 Протокол двухфазного блокирования (Two phase locking (2PL))

2. Не блокирующие:
   2.1 Упорядочевание на основе временных меток.( Timestamp ordering (TO) )
   2.2 Проверка корректности графа транзакций ( Serialization graph testing (SGT))

Механизм контроля версий (MVCC) может быть добавлен к любому планировщику транзакций в целях минимизации количества конфликтных ситуаций требующих ожидания/отката за счет затрат на необходимость хранить версии данных.
Напримеры:

TO+MVCС : InterBase (Этот подвид обычно и называют "версионник" в противопоставлении "версионник" vs "блокировочник" на форумах и в научно-популярных;) статьях ).

(2PL + TO) + MVCС : Oracle (смешанный механизм шедулера, можно рассматривать как TO для чтения и 2PL для записи).

В Yukon, на сколько я пологаю, "Версионность" это как и в Oracle смешанный механизм шедулера (2PL + TO) + MVCС, но тут я могу ошибаться.

[1] Concurrency Control & Recovery in Database Systems, By Ph. Bernstein .
[2]/topic/94928&pg=8#708730


Случайно заглянулOracle кстате версиониик только внешне, внутри он все такой же блокировочник.
ИХМО постоянное возникновенни ошибки ORA-1555 Snapshot too old
коственно говорит о кривости рук проектировщика базы.
2) Как уже написано выше в Oracle применен гибридный механизм управления паралельными заданиями и поддержания целостности (2PL + TO) + MVCС.
ORA-1555 Snapshot too old это результат некоторого компромиса в угоду скорости взамен на некоторую вероятность не выполнить транзакцию.


Случайно заглянул
Зачем версионнику ISOLATION LEVEL SERIALIZABLE. У него есть версионные механизмы поддержания целосности данных.
3) То что в Oracle называется ISOLATION LEVEL SERIALIZABLE, не является SERIALIZABLE в полном понимании (т.е. не обеспечивает удовлетворения критерию упорядоченности), в теории такой уровень изоляции обычно называют SNAPSHOT. SERIALIZABLE в Oracle его назвали благодаря нечеткому определению этого уровня в ANSI стандарте ( через отсутствие некоторого набора феноменов, которые SNAPSHOT как раз и предотвращает).
Для обеспечения реальной сериализации требуется ставить дополнительные блокировки.

Случайно заглянул
В документации по oracle я нигде не встречал описание понятия версионности. Может процитируете для меня?
4) Oracle® Database Concepts 10g Release 1 (10.1). 1 Introduction to the Oracle Database.
Concurrency
...
Oracle resolves such issues by using various types of locks and a multiversion consistency model . These features are based on the concept of a transaction

Read Consistency, Undo Records, and Transactions
To manage the multiversion consistency model , Oracle must create a read-consistent set of data when a table is queried (read) and simultaneously updated (written). When an update occurs, the original data values changed by the update are recorded in the database undo records. As long as this update remains part of an uncommitted transaction, any user that later queries the modified data views the original data values. Oracle uses current information in the system global area and information in the undo records to construct a read-consistent view of a table\'s data for a query.

Only when a transaction is committed are the changes of the transaction made permanent. Statements that start after the user\'s transaction is committed only see the changes made by the committed transaction.

The transaction is key to Oracle\'s strategy for providing read consistency. This unit of committed (or uncommitted) SQL statements:

Dictates the start point for read-consistent views generated on behalf of readers

Controls when modified data can be seen by other transactions of the database for reading or updating


5) В Вашем примере c дебетовыми транзакциями Oracle на уровне ISOLATION LEVEL SERIALIZABLE (snapshot) одну транзакцию откатит. На уровне изоляции READ COMITTED ( опять же несколько не соответствующем ANSI уровню), разработчику надо принимать дополнительные меры по блокированию счета.
...
Рейтинг: 0 / 0
2 сообщений из 52, страница 3 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор БД для быстрой работы с большими таблицами.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]