Привет

Russian speaking community forum
Текущее время: 03 сен 2010 06:14

Часовой пояс: UTC - 8 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Ответ Тома на вопрос о consistent write...
СообщениеДобавлено: 29 ноя 2003 11:52 
Не в сети
Уже с Приветом
Аватара пользователя

Зарегистрирован: 21 сен 2000 01:01
Сообщения: 3919
Откуда: Sammamish, WA
...не заставил себя долго ждать. После бурной частной переписки в течение 3 дней и дополнительных запросов от Тома предоставить ему всё больше и больше подробностей, а также эмоциональных комментарев с дюжиной вопросительных и восклицательных знаков он наконец ответил официально на сайте. Вернее отписался. Но с пометкой "do not publish", т.е. его ответ не предназначен для общего просмотра. Поэтому эта страница не видна для других посетителей asktom.com.

_________________
Cheers


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 ноя 2003 12:22 
Не в сети
Уже с Приветом

Зарегистрирован: 26 сен 2002 04:24
Сообщения: 109
Опаньки... обидно.
А небыло никаких намеков, мол попозже обмозгую и напишу? Или все, этот вопрос широкой общественности теперь никогда доступен не будет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 ноя 2003 14:09 
Не в сети
Уже с Приветом
Аватара пользователя

Зарегистрирован: 21 сен 2000 01:01
Сообщения: 3919
Откуда: Sammamish, WA
Merle писал(а):
А небыло никаких намеков, мол попозже обмозгую и напишу? Или все, этот вопрос широкой общественности теперь никогда доступен не будет?

Не переживайте - ничего полезного, чего бы мы уже не знали или не предполагали, он не сказал. Я уже поместил свой вежливый по форме, но жёсткий по сути комментарий на его последний ответ-отписку. Посмотрим, будет ли продолжение.

_________________
Cheers


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2003 23:25 
Не в сети
Уже с Приветом
Аватара пользователя

Зарегистрирован: 21 сен 2000 01:01
Сообщения: 3919
Откуда: Sammamish, WA
Том перестал отвечать окончательно... Поэтому я попробовал продолжить в usenet.

comp.databases.oracle.server - Single-statement 'write consistency' on read committed. Oh, really?

_________________
Cheers


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2003 14:02 
Не в сети
Уже с Приветом

Зарегистрирован: 26 сен 2002 04:24
Сообщения: 109
Спасибо, очень интересно почитать...
Но.. На сколько я понимаю, при Read committed уровне изоляции, версионнику, при изменении данных, достаточно дождаться пока другая транзакция перепишет запись и зафиксируется, потом прочитать новое значение и если оно удовлетворяет предикату - изменить, если нет, то не менять.
Зачем вообще Ораклу нужно делать откат? Транзакция в любом случае будет обновлять зафиксированные данные и с точки зрения формальной теории все в поряке.. Или я ошибаюсь?
Да statement concistency таким образом не получится, но RC этого и не требует...
Или Ораклу нужно делать эти миниоткаты, чтобы просто поменять метки транзакций в уже обновленных данных, так как могут возникнуть проблемы при последующих чтениях?

И еще такой вопрос немного в сторону. Если при уровне изоляции RC запрос натыкается на запись измененную и зафиксированную уже после его старта.. Он все равно берет версию данных на момент начала выполнения своего запроса или берет уже зафиксированную версию? Или все это зависит от конкретной реализации, а с формальной точки зрения оба случая будут RC?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2003 17:07 
Не в сети
Уже с Приветом

Зарегистрирован: 04 июн 2002 17:11
Сообщения: 664
Merle писал(а):
...
И еще такой вопрос немного в сторону. Если при уровне изоляции RC запрос натыкается на запись измененную и зафиксированную уже после его старта.. Он все равно берет версию данных на момент начала выполнения своего запроса или берет уже зафиксированную версию? Или все это зависит от конкретной реализации, а с формальной точки зрения оба случая будут RC?


It depends on what you mean by 'request'. If it's a select statement, then the version as of the moment the select started is used. If it's an update/delete, naturally, the current version will be used.

Rgds.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2003 19:03 
Не в сети
Уже с Приветом
Аватара пользователя

Зарегистрирован: 21 сен 2000 01:01
Сообщения: 3919
Откуда: Sammamish, WA
Merle писал(а):
Зачем вообще Ораклу нужно делать откат? Транзакция в любом случае будет обновлять зафиксированные данные и с точки зрения формальной теории все в поряке.. Или я ошибаюсь? Да statement concistency таким образом не получится, но RC этого и не требует...

Вот это и есть суть одного из вопросов, ответ от которого я хотел получить от Тома. Зачем вообще возиться с перезапусками, если всё равно есть случаи, когда они нужны, но по факту не делаются? Почему тогда не перезапускать всегда когда это нужно? И даже если согласиться с таким половинчатым решением - в чём его смысл? Какие пользовательские сценарии покрывает их решение? Почему это всё недокументировано?

Цитата:
Или Ораклу нужно делать эти миниоткаты, чтобы просто поменять метки транзакций в уже обновленных данных, так как могут возникнуть проблемы при последующих чтениях?

Нет, эти миниоткаты не меняют метку тразнакции - транзакция ведь одна и та же.

Цитата:
Если при уровне изоляции RC запрос натыкается на запись измененную и зафиксированную уже после его старта.. Он все равно берет версию данных на момент начала выполнения своего запроса или берет уже зафиксированную версию? Или все это зависит от конкретной реализации, а с формальной точки зрения оба случая будут RC?

Данные для обновления вне зависимости от реализации или уровня изоляции нужно брать всегда текущие (последние зафиксированные) иначе будут аномалии не разрешённые ни одним стандартным уровнем изоляции.

_________________
Cheers


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 04:26 
Не в сети
Уже с Приветом

Зарегистрирован: 30 апр 2003 08:43
Сообщения: 6375
Откуда: Челябинск-->Toronto
tengiz писал(а):
...................

Цитата:
Если при уровне изоляции RC запрос натыкается на запись измененную и зафиксированную уже после его старта.. Он все равно берет версию данных на момент начала выполнения своего запроса или берет уже зафиксированную версию? Или все это зависит от конкретной реализации, а с формальной точки зрения оба случая будут RC?

Данные для обновления вне зависимости от реализации или уровня изоляции нужно брать всегда текущие (последние зафиксированные) иначе будут аномалии не разрешённые ни одним стандартным уровнем изоляции.


А как же Оракл то поступает - берет текущие или на начало транзакции? А есть ли этому выбору теоритическое обоснование?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 05:19 
Не в сети
Уже с Приветом

Зарегистрирован: 26 сен 2002 04:24
Сообщения: 109
zVlad писал(а):
А как же Оракл то поступает - берет текущие или на начало транзакции? А есть ли этому выбору теоритическое обоснование?

Естественно текущее, иначе от Lost Update'ов там было бы не отвертеться. Отсюда же и теоретическое обоснование. =)
Если для изменения брать не текущие данные, а на момент запроса, то можно нарваться на Lost update.
Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 05:47 
Не в сети
Уже с Приветом

Зарегистрирован: 26 сен 2002 04:24
Сообщения: 109
Цитата:
Нет, эти миниоткаты не меняют метку тразнакции - транзакция ведь одна и та же.

Я здесь, немного описАлся... Я имел ввиду не метку, а время транзакции. Я не знаю, каким образом Оракл определяет, что транзакция запущена раньше или позже, (как различает версии данных) И была мысль, что именно таким образом сдвигается один запрос относительно другого по времени.

Цитата:
Данные для обновления вне зависимости от реализации <...>

Да, это понятно, спасибо, но я в вопросе имел ввиду читающий запрос, а не пишущий..
Так, из области теоретических размышлений, на сколько корректным было бы брать уже зафиксированную версию...
Мне кажется, что вполне корректно, но по скольку брать версию на начало запроса не слишком накладно, но более согласованно, то большинство реализаций, в том числе и Оракл так и поступают..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 08:02 
Не в сети
Уже с Приветом

Зарегистрирован: 30 апр 2003 08:43
Сообщения: 6375
Откуда: Челябинск-->Toronto
Merle писал(а):
zVlad писал(а):
А как же Оракл то поступает - берет текущие или на начало транзакции? А есть ли этому выбору теоритическое обоснование?

Естественно текущее, иначе от Lost Update'ов там было бы не отвертеться. Отсюда же и теоретическое обоснование. =)
Если для изменения брать не текущие данные, а на момент запроса, то можно нарваться на Lost update.
Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал..


Merle wrote: "...Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал"
That's exactly why I was asking my questions. With update it is clear enough. I was asking (like you) keeping in my mind SELECT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 08:18 
Не в сети
Уже с Приветом

Зарегистрирован: 04 июн 2002 17:11
Сообщения: 664
zVlad писал(а):
Merle писал(а):
zVlad писал(а):
А как же Оракл то поступает - берет текущие или на начало транзакции? А есть ли этому выбору теоритическое обоснование?

Естественно текущее, иначе от Lost Update'ов там было бы не отвертеться. Отсюда же и теоретическое обоснование. =)
Если для изменения брать не текущие данные, а на момент запроса, то можно нарваться на Lost update.
Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал..


Merle wrote: "...Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал"
That's exactly why I was asking my questions. With update it is clear enough. I was asking (like you) keeping in my mind SELECT.


I thought I'd already answered this ...

But anyway, under the RCIL, the select is processed with the database "frozen" at the moment when the statement started; under the SIL, data is selected based on the timestamp when the whole transaction started (the first select or other statement).

Rgds.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2003 12:14 
Не в сети
Уже с Приветом

Зарегистрирован: 30 апр 2003 08:43
Сообщения: 6375
Откуда: Челябинск-->Toronto
vc писал(а):
zVlad писал(а):
Merle писал(а):
zVlad писал(а):
А как же Оракл то поступает - берет текущие или на начало транзакции? А есть ли этому выбору теоритическое обоснование?

Естественно текущее, иначе от Lost Update'ов там было бы не отвертеться. Отсюда же и теоретическое обоснование. =)
Если для изменения брать не текущие данные, а на момент запроса, то можно нарваться на Lost update.
Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал..


Merle wrote: "...Но я вопрос задавал не про insert/update/delete, а про select, просто как всегда не очень четко сформулировал"
That's exactly why I was asking my questions. With update it is clear enough. I was asking (like you) keeping in my mind SELECT.


I thought I'd already answered this ...

But anyway, under the RCIL, the select is processed with the database "frozen" at the moment when the statement started; under the SIL, data is selected based on the timestamp when the whole transaction started (the first select or other statement).

Rgds.


Sorry, vc. It was, actually, some sort of misleading (misunderstanding).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 янв 2004 07:16 
Не в сети
Уже с Приветом

Зарегистрирован: 30 апр 2003 08:43
Сообщения: 6375
Откуда: Челябинск-->Toronto
I have just discovered article regarding Multi Version on IBM side and want to share it with you guys (I don't read it myself yet but it probably could be worth to read):

ftp://ftp.software.ibm.com/software/dat ... stency.pdf


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC - 8 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB