powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Версионники и блокировочники
25 сообщений из 335, страница 11 из 14
Версионники и блокировочники
    #34030771
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavelvpА у Oracle нет блокировки предикатов?
Нет. Наличие блокировки предикатов в точности и означает наличие "честного" serializable. Я не интересовался состоянием дел в последние годы, а по старым воспоминаниям, никто пока не придумал способа реализовать ее с приемлимой эффективностью.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34030981
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Позвольне несогласиться.
Приведенный Андреем пример полностью противоречит
следующим строчкам стандарта:

тогда вам прийдется не согласится за одно с IBM, Microsoft, HP и прочими членами tpc council. ;) откройте любой их отчет они все пишут что оракловый serializable полностью удолетворяет стандарту 92. там буквально абзацем ниже дается дефениция всем уровням изолированости через феномены
The isolation level specifies the kind of phenomena that can occur during the execution of concurrent SQL-transactions.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031109
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! onstat-
Позвольне несогласиться.
Приведенный Андреем пример полностью противоречит
следующим строчкам стандарта:

тогда вам прийдется не согласится за одно с IBM, Microsoft, HP и прочими членами tpc council. ;) откройте любой их отчет они все пишут что оракловый serializable полностью удолетворяет стандарту 92. там буквально абзацем ниже дается дефениция всем уровням изолированости через феномены
The isolation level specifies the kind of phenomena that can occur during the execution of concurrent SQL-transactions.

Я не вижу противоречий между приведенной Вами цитатой и
стандартом.
SQL92
The four isolation levels guarantee that each SQL-transaction will
be executed completely or not at all, and that no updates will be
lost. The isolation levels are different with respect to phenomena
P1, P2, and P3. Table 9, "SQL-transaction isolation levels and the
three phenomena" specifies the phenomena that are possible and not
possible for a given isolation level.


Разница только в том, что цитата говорит о каких-то абстрактных типах феноменов которые могут быть в принципе,
А стандарт описывает правила поведения для уровней изоляции
для конкретных феноменов.

з.ы. В подтверждение Ваших слов, пожалуста, потрудитесь привести более точную цитату и ссылку.
Мне некогда искать tpc репорты, которым лично я не доверяю,
потому что в этих репортах ничего рекламы не вижу.
Что бы проверить их прадивость, нужно потратить миниум сумму с 5-ью нулями
для каждого репотра.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031170
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
з.ы. В подтверждение Ваших слов, пожалуста, потрудитесь привести более точную цитату и ссылку.
Мне некогда искать tpc репорты, которым лично я не доверяю,
потому что в этих репортах ничего рекламы не вижу.

надеюсь за мои труды мне воздастся ;)
авторSerializable Transactions:
Oracle supports serializable transaction isolation in full compliance with the SQL92 and
TPC-C requirements. This is implemented by extending multiple concurrency control
mechanisms long supported by Oracle.

Fujitsu: http://tpc.org/results/FDR/TPCC/fujitsu_primequest480_tpcc_fdr.pdf
HP: http://tpc.org/results/FDR/TPCC/tpcc.hp.rx6600.fdr.pdf
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031193
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!
надеюсь за мои труды мне воздастся ;)


Спасибо, будет у нас в Днепропетровске, сообщите в личку.
Пива выпьем ;)
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031208
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нее ... уж лучше вы к нам (C)
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031343
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!
Fujitsu: http://tpc.org/results/FDR/TPCC/fujitsu_primequest480_tpcc_fdr.pdf
HP: http://tpc.org/results/FDR/TPCC/tpcc.hp.rx6600.fdr.pdf

fujitsu_primequest480_tpcc_fdr.pdf
Serializable Transactions:
Oracle supports serializable transaction isolation in full compliance with the SQL92 and
TPC-C requirements. This is implemented by extending multiple concurrency control
mechanisms long supported by Oracle.
.......
Oracle implements SERIALIZABLE mode by extending the scope of read consistency
from individual query to the entire transaction itself
. ALL reads by serializable
transactions are therefore repeatable, as the transaction will access prior versions of data
changed (or deleted) by other transactions after the start of serializable transactions.
Thus, a serializable transaction sees a fixed snapshot of the database, established at the
beginning of the transaction.


Еще раз спасибо, за подтверждение.

Суть в выделенных словах и главное из них itself .
Как много смысла может поменять одно слово из 6 букв:(
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031367
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- fujitsu_primequest480_tpcc_fdr.pdf
Serializable Transactions:
Oracle supports serializable transaction isolation in full compliance with the SQL92 and
TPC-C requirements. This is implemented by extending multiple concurrency control
mechanisms long supported by Oracle.
.......
Oracle implements SERIALIZABLE mode by extending the scope of read consistency
from individual query to the entire transaction itself
. ALL reads by serializable
transactions are therefore repeatable, as the transaction will access prior versions of data
changed (or deleted) by other transactions after the start of serializable transactions.
Thus, a serializable transaction sees a fixed snapshot of the database, established at the
beginning of the transaction.

Суть в выделенных словах и главное из них itself .
Как много смысла может поменять одно слово из 6 букв:(
Простите, а что конкретно изменило слово "itself" применительно к процитированному тексту?
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031504
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous onstat- fujitsu_primequest480_tpcc_fdr.pdf
Serializable Transactions:
Oracle supports serializable transaction isolation in full compliance with the SQL92 and
TPC-C requirements. This is implemented by extending multiple concurrency control
mechanisms long supported by Oracle.
.......
Oracle implements SERIALIZABLE mode by extending the scope of read consistency
from individual query to the entire transaction itself
. ALL reads by serializable
transactions are therefore repeatable, as the transaction will access prior versions of data
changed (or deleted) by other transactions after the start of serializable transactions.
Thus, a serializable transaction sees a fixed snapshot of the database, established at the
beginning of the transaction.

Суть в выделенных словах и главное из них itself .
Как много смысла может поменять одно слово из 6 букв:(
Простите, а что конкретно изменило слово "itself" применительно к процитированному тексту?

Постараюсь расставить точки над Ё :)

ИХМО 1. itself озанчает, что serializable
действителен только внутри транзакции, где конкуренции и так нет.

ИХМО 2. Если смотреть на стандарт, то это не full compliance

Нонсенс какойто, точки противоречат.
А первая еще и вносит неясность с понятием serializable из-за itself
усилинным словом entire .


зы Хорошая игра слов однако. Или у меня плохо с Английским?
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031513
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Постараюсь расставить точки над Ё :)
ИХМО 1. itself озанчает, что serializable
действителен только внутри транзакции, где конкуренции и так нет.Нет... onstat-зы Хорошая игра слов однако. Или у меня плохо с Английским?
Вот это может быть.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34031576
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-ИХМО 1. itself озанчает, что serializable
действителен только внутри транзакции
Это слово относится к read consistency, а не к serializable, и в сумме получается примерно так: "распространением согласованности чтения на уровень транзакции в целом, не более и не менее" [entire и itself задают две границы, снизу и сверху].

onstat-ИХМО 2. Если смотреть на стандарт, то это не full compliance
Имхо, конечно, может быть любым, но в данном случае существует общепринятое мнение, выработанное по сути авторами стандарта, и спорить относительно формы вряд ли осмысленно.

Я бы сосредоточился на другом аспекте: на том, что из формального соответствия уровней изоляции совершенно не следует возможность одинаково писать для разных серверов.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34032009
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
onstat-ИХМО 1. itself озанчает, что serializable
действителен только внутри транзакции
Это слово относится к read consistency, а не к serializable, и в сумме получается примерно так: "распространением согласованности чтения на уровень транзакции в целом, не более и не менее" [entire и itself задают две границы, снизу и сверху].



ИХМО itself относится к транзакции в целом, которая работает в serializable mode.

Oracle обеспечивает serializable mode как расширение области видимости
конкретного консистентного запроса ко всей транзакции в целом.

Не знаю что они хотели этим сказать.

и далее


Thus, a serializable transaction sees a fixed snapshot of the database, established at the
beginning of the transaction.


serializable transaction видит фиксированный моментальный снимок(я специально перевел shapshot)базы данных устновленный на начало транзакции.

То есть берем данные на начало транзакции, предикаты не блокируем
(потому, что снапшот), вносим изменения в базу данных
на основании данных из снапшота, не учитывая закомиченых
транзакций из других сессий после старта нашей serializable транзакции.

Теперь я не понимаю чем этот serializable отличается от RC.

softwarer
onstat-ИХМО 2. Если смотреть на стандарт, то это не full compliance
Имхо, конечно, может быть любым, но в данном случае существует общепринятое мнение, выработанное по сути авторами стандарта, и спорить относительно формы вряд ли осмысленно.

Я бы сосредоточился на другом аспекте: на том, что из формального соответствия уровней изоляции совершенно не следует возможность одинаково писать для разных серверов.

Полностью поддерживаю.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34032084
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-ИХМО itself относится к транзакции в целом, которая работает в serializable mode.
Oracle обеспечивает serializable mode как расширение области видимости
конкретного консистентного запроса ко всей транзакции в целом.
Не знаю что они хотели этим сказать.

То, что в транзакции может содержаться более одного запроса. Соответственно, в serializable oracle обеспечивает согласованное чтение не только отдельно взятого statement, но всей транзакции целиком. onstat-
Thus, a serializable transaction sees a fixed snapshot of the database, established at the beginning of the transaction.
То есть берем данные на начало транзакции, предикаты не блокируем
(потому, что снапшот), вносим изменения в базу данных на основании данных из снапшота, не учитывая закомиченых транзакций из других сессий после старта нашей serializable транзакции.
Теперь я не понимаю чем этот serializable отличается от RC.
:) Как чувствовал - не надо было этот пример сюда постить, теперь начались грязные инсинуации :)
Господа, отсутствие ограничений целостности и операция insert в приведенной иллюстрации - далеко не случайность , без должной подготовки обобщать не следует .
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34032201
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Oracle обеспечивает serializable mode как расширение области видимости конкретного консистентного запроса ко всей транзакции в целом.
Хм. Как Вам сказать.... если бы такой перевод выдал Промпт, я бы не удивился. Но от человека слышать это несколько странно. Правильно так [в сторону - да, я знаю, что можно перевести лучше, чем сделаю я]:

Oracle обеспечивает serializable mode, поднимая требование согласованности чтения с уровня отдельного запроса на уровень транзакции в целом. Все чтения в сериализованной транзакции являются повторяемыми; транзакция использует предыдущие версии тех данных, которые изменены или удалены транзакциями, стартовавшими после начала сериализуемой. Таким образом, сериализуемая транзакция видит моментальный снимок данных на момент начала транзакции.

onstat-Теперь я не понимаю чем этот serializable отличается от RC.
Хм. От RC он отличается тем, что он не RC. Если Вы имели в виду "отличается от RR" - этого корпорация Фуджитсу (или кто там автор этой цитаты) здесь не написали. Отличие в поведении при модификации данных.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34032213
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous onstat-ИХМО itself относится к транзакции в целом, которая работает в serializable mode.
Oracle обеспечивает serializable mode как расширение области видимости
конкретного консистентного запроса ко всей транзакции в целом.
Не знаю что они хотели этим сказать.

То, что в транзакции может содержаться более одного запроса. Соответственно, в serializable oracle обеспечивает согласованное чтение не только отдельно взятого statement, но всей транзакции целиком.


Понял, спасибо, Я под запросом понимал не только чтение.


andrey_anonymous
onstat-
Thus, a serializable transaction sees a fixed snapshot of the database, established at the beginning of the transaction.
То есть берем данные на начало транзакции, предикаты не блокируем
(потому, что снапшот), вносим изменения в базу данных на основании данных из снапшота, не учитывая закомиченых транзакций из других сессий после старта нашей serializable транзакции.
Теперь я не понимаю чем этот serializable отличается от RC.
:) Как чувствовал - не надо было этот пример сюда постить, теперь начались грязные инсинуации :)
Господа, отсутствие ограничений целостности и операция insert в приведенной иллюстрации - далеко не случайность , без должной подготовки обобщать не следует .


Никакого злого умысла я не предполагал.
Прошу прощения.

С уважением, onstat-
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34032404
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Понял, спасибо, Я под запросом понимал не только чтение.
В данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34033182
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency.
Не совсем верно - они читают только current mode - т.е. текущее значение, которое и можно изменить. Consistent read - это snapshot на какой-то момент времени - его не меняют - это состояние в прошлом.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34033193
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency.Не совсем верно - они читают только current mode
Это утверждение не совсем верно.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34036812
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency.
Не совсем верно - они читают только current mode - т.е. текущее значение, которое и можно изменить. Consistent read - это snapshot на какой-то момент времени - его не меняют - это состояние в прошлом.

ИХМО.
Для update данные берутся из снапшота,
при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала
текущей то сессия вылетает по исключению ORA-08177.

А если конкурирующая транзакция не закомичена, то и подавно,
правда может быть исключение ORA-00054.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34037388
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала
текущей то сессия вылетает по исключению ORA-08177.
Только в serializable.
В RC может либо рестартовать statement, либо взять "как есть" в зависимости от характера изменений, проведенных транзакцией-конкурентом. onstat-
А если конкурирующая транзакция не закомичена, то и подавно,
правда может быть исключение ORA-00054.
Нет. update в принципе не способен генерировать ora-54, поэтому просто будет ждать освобождения блокировки.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34037585
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous onstat-при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала
текущей то сессия вылетает по исключению ORA-08177.
Только в serializable.
В RC может либо рестартовать statement, либо взять "как есть" в зависимости от характера изменений, проведенных транзакцией-конкурентом. onstat-
А если конкурирующая транзакция не закомичена, то и подавно,
правда может быть исключение ORA-00054.
Нет. update в принципе не способен генерировать ora-54, поэтому просто будет ждать освобождения блокировки.


Давайте пока остановимся только на serializable. Что бы не путаться
что за чем и когда происходит.

Если он будет ждать освобождения, а потом выполнит изменение,
то будет нарушена целостность данных с точки зрения serailizable.
Чтение консистентно на момент времени в прошлом,
а изменение не учитывает закомиченные транзакции
после старта serailizable транзакции.
Я об этом уже писал.

ИХМО
В serializable он ждать не имеет права.
Либо должен брать информацию не из снапшота.

Как сервер ведет себя в действительности я не знаю.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34037603
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Как сервер ведет себя в действительности я не знаю.
Ждет завершения конкурирующей транзакции.
Блокирует строку.
Анализирует характер изменений.
Если изменения несовместимы - откат statement.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34037776
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous onstat-Как сервер ведет себя в действительности я не знаю.
Ждет завершения конкурирующей транзакции.
Блокирует строку.
Анализирует характер изменений.
Если изменения несовместимы - откат statement.

Где об этом можно почитать?
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34037795
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Где об этом можно почитать?
oracle concepts, раздел data concurrency and consistency не подходит?
Пишущие транзакции в оракеле успешно друг друга блокируют, с логической точки зрения тут нет никаких "версионных" особенностей.
...
Рейтинг: 0 / 0
Версионники и блокировочники
    #34038920
Зл0й
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer pavelvpА у Oracle нет блокировки предикатов?
Нет. Наличие блокировки предикатов в точности и означает наличие "честного" serializable. Я не интересовался состоянием дел в последние годы, а по старым воспоминаниям, никто пока не придумал способа реализовать ее с приемлимой эффективностью.

И не придумают, т.к. это невозможно в принципе. С вопросом "почему" отсылаю к курсам "теория сложности" и "математическая логика". Ключевые слова - "NP полная задача" и "исчисление предикатов 1го порядка". Грубо говоря, эта задача решается только полным перебором :)

Вот поэтому "блокировки предикатов" в чистом виде нет ни в одном из серверов СУБД. Если интересно "как же это реализовано на практике" - почитайте Джима Грея, ключевое слово "intent locking". Рассказано там без подробностей (они - "секрет фирмы") но общую идею понять можно. В общем блокируются НЕ ПРЕДИКАТЫ а таблицы - страницы - группы записей. Имеется целая теория на тему как же это должно делаться "чтоб фантомов не было". Тот факт что если блокировать "по уму" то фантомов не будет доказывается математически.
...
Рейтинг: 0 / 0
25 сообщений из 335, страница 11 из 14
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Версионники и блокировочники
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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