|
|
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pavelvpА у Oracle нет блокировки предикатов? Нет. Наличие блокировки предикатов в точности и означает наличие "честного" serializable. Я не интересовался состоянием дел в последние годы, а по старым воспоминаниям, никто пока не придумал способа реализовать ее с приемлимой эффективностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 10:55 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 11:41 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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-ью нулями для каждого репотра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:05 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:24 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Yo.!! надеюсь за мои труды мне воздастся ;) Спасибо, будет у нас в Днепропетровске, сообщите в личку. Пива выпьем ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:29 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
нее ... уж лучше вы к нам (C) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:34 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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 букв:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:05 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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" применительно к процитированному тексту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:10 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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 . зы Хорошая игра слов однако. Или у меня плохо с Английским? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:34 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-Постараюсь расставить точки над Ё :) ИХМО 1. itself озанчает, что serializable действителен только внутри транзакции, где конкуренции и так нет.Нет... onstat-зы Хорошая игра слов однако. Или у меня плохо с Английским? Вот это может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:36 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-ИХМО 1. itself озанчает, что serializable действителен только внутри транзакции Это слово относится к read consistency, а не к serializable, и в сумме получается примерно так: "распространением согласованности чтения на уровень транзакции в целом, не более и не менее" [entire и itself задают две границы, снизу и сверху]. onstat-ИХМО 2. Если смотреть на стандарт, то это не full compliance Имхо, конечно, может быть любым, но в данном случае существует общепринятое мнение, выработанное по сути авторами стандарта, и спорить относительно формы вряд ли осмысленно. Я бы сосредоточился на другом аспекте: на том, что из формального соответствия уровней изоляции совершенно не следует возможность одинаково писать для разных серверов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:48 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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 Имхо, конечно, может быть любым, но в данном случае существует общепринятое мнение, выработанное по сути авторами стандарта, и спорить относительно формы вряд ли осмысленно. Я бы сосредоточился на другом аспекте: на том, что из формального соответствия уровней изоляции совершенно не следует возможность одинаково писать для разных серверов. Полностью поддерживаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 15:09 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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 в приведенной иллюстрации - далеко не случайность , без должной подготовки обобщать не следует . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 15:23 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-Oracle обеспечивает serializable mode как расширение области видимости конкретного консистентного запроса ко всей транзакции в целом. Хм. Как Вам сказать.... если бы такой перевод выдал Промпт, я бы не удивился. Но от человека слышать это несколько странно. Правильно так [в сторону - да, я знаю, что можно перевести лучше, чем сделаю я]: Oracle обеспечивает serializable mode, поднимая требование согласованности чтения с уровня отдельного запроса на уровень транзакции в целом. Все чтения в сериализованной транзакции являются повторяемыми; транзакция использует предыдущие версии тех данных, которые изменены или удалены транзакциями, стартовавшими после начала сериализуемой. Таким образом, сериализуемая транзакция видит моментальный снимок данных на момент начала транзакции. onstat-Теперь я не понимаю чем этот serializable отличается от RC. Хм. От RC он отличается тем, что он не RC. Если Вы имели в виду "отличается от RR" - этого корпорация Фуджитсу (или кто там автор этой цитаты) здесь не написали. Отличие в поведении при модификации данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 15:43 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
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- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 15:44 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-Понял, спасибо, Я под запросом понимал не только чтение. В данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 16:23 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency. Не совсем верно - они читают только current mode - т.е. текущее значение, которое и можно изменить. Consistent read - это snapshot на какой-то момент времени - его не меняют - это состояние в прошлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 22:06 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Anton Demidov softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency.Не совсем верно - они читают только current mode Это утверждение не совсем верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 22:19 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Anton Demidov softwarerВ данном случае такое понимание вполне корректно. Операторы MERGE, UPDATE и DELETE также читают данные, и к ним применимо понятие read consistency. Не совсем верно - они читают только current mode - т.е. текущее значение, которое и можно изменить. Consistent read - это snapshot на какой-то момент времени - его не меняют - это состояние в прошлом. ИХМО. Для update данные берутся из снапшота, при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала текущей то сессия вылетает по исключению ORA-08177. А если конкурирующая транзакция не закомичена, то и подавно, правда может быть исключение ORA-00054. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 10:50 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала текущей то сессия вылетает по исключению ORA-08177. Только в serializable. В RC может либо рестартовать statement, либо взять "как есть" в зависимости от характера изменений, проведенных транзакцией-конкурентом. onstat- А если конкурирующая транзакция не закомичена, то и подавно, правда может быть исключение ORA-00054. Нет. update в принципе не способен генерировать ora-54, поэтому просто будет ждать освобождения блокировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 12:59 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous onstat-при попытке изменения проверятется слот транзакции, если в слоте содержится SCN транзакции которая закомичена после начала текущей то сессия вылетает по исключению ORA-08177. Только в serializable. В RC может либо рестартовать statement, либо взять "как есть" в зависимости от характера изменений, проведенных транзакцией-конкурентом. onstat- А если конкурирующая транзакция не закомичена, то и подавно, правда может быть исключение ORA-00054. Нет. update в принципе не способен генерировать ora-54, поэтому просто будет ждать освобождения блокировки. Давайте пока остановимся только на serializable. Что бы не путаться что за чем и когда происходит. Если он будет ждать освобождения, а потом выполнит изменение, то будет нарушена целостность данных с точки зрения serailizable. Чтение консистентно на момент времени в прошлом, а изменение не учитывает закомиченные транзакции после старта serailizable транзакции. Я об этом уже писал. ИХМО В serializable он ждать не имеет права. Либо должен брать информацию не из снапшота. Как сервер ведет себя в действительности я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 13:47 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-Как сервер ведет себя в действительности я не знаю. Ждет завершения конкурирующей транзакции. Блокирует строку. Анализирует характер изменений. Если изменения несовместимы - откат statement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 13:49 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous onstat-Как сервер ведет себя в действительности я не знаю. Ждет завершения конкурирующей транзакции. Блокирует строку. Анализирует характер изменений. Если изменения несовместимы - откат statement. Где об этом можно почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 14:24 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
onstat-Где об этом можно почитать? oracle concepts, раздел data concurrency and consistency не подходит? Пишущие транзакции в оракеле успешно друг друга блокируют, с логической точки зрения тут нет никаких "версионных" особенностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 14:27 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
softwarer pavelvpА у Oracle нет блокировки предикатов? Нет. Наличие блокировки предикатов в точности и означает наличие "честного" serializable. Я не интересовался состоянием дел в последние годы, а по старым воспоминаниям, никто пока не придумал способа реализовать ее с приемлимой эффективностью. И не придумают, т.к. это невозможно в принципе. С вопросом "почему" отсылаю к курсам "теория сложности" и "математическая логика". Ключевые слова - "NP полная задача" и "исчисление предикатов 1го порядка". Грубо говоря, эта задача решается только полным перебором :) Вот поэтому "блокировки предикатов" в чистом виде нет ни в одном из серверов СУБД. Если интересно "как же это реализовано на практике" - почитайте Джима Грея, ключевое слово "intent locking". Рассказано там без подробностей (они - "секрет фирмы") но общую идею понять можно. В общем блокируются НЕ ПРЕДИКАТЫ а таблицы - страницы - группы записей. Имеется целая теория на тему как же это должно делаться "чтоб фантомов не было". Тот факт что если блокировать "по уму" то фантомов не будет доказывается математически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 20:15 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34033182&tid=1553078]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 365ms |

| 0 / 0 |
