http://tankmaster.livejournal.com/ ([identity profile] tankmaster.livejournal.com) wrote in [community profile] useless_faq2006-05-25 02:31 pm

(no subject)

Предположим такую ситуацию: некто запостил в [livejournal.com profile] useless_faq вопрос, который не отвечает правилам сообщества, но его ещё не удалили модераторы. У человека, который загружает этот пост, чтобы посмотреть комменты, медленный интернет, и страница загружается медленно. И вот у него загрузилось полстраницы, и продолжает открываться, и в этот момент модератор с быстрым интернетом удалит этот пост, т.к. он не отвечает правилам сообсчества. Вопрос - у человека, который загружает страничку с постом, эта страничка всё-таки дозагрузится, даже когда её удалит модератор, или напишет какую-то ошибку а-ля "Не могу догрузить до конца эту страницу, т.к. такой записи уже нет"?

[identity profile] sxakludant.livejournal.com 2006-05-25 10:56 am (UTC)(link)
ороче ето делаеццо примено так:
удаление само процесс из 2х действий
1. собственно удаление - при нем данные реально удаляются из таблицы, но перед этим заносятся в роллбек-сегмент , в таблице каежтся остается ссылка на то что тут есть еще запись
если даже быстро запросить в эжтот момент таблицу (пока не произошла стадия 2 - коммит, любой селект из другой сессии поймет что данные не закоммичены и возьмет данные из рб сегмента)
2. коммит - место в рб сегменте освобождается для след транзакций
если щас запросить селект, то он уже ответит что етой записи нет

А вот если запросить любой селект до коммита то он знает, что он должен вернуть данные по состоянию на "до коммита" по ид транзакции он опеделяет что ему все-таки дажен после коммита надо лезть в рб сегмент
А вот если к етому моменту эта часть рб сегмента будет уже занята другой транзакцией - будет snapshot too old

это все разумеется толькопримерно

[identity profile] sxakludant.livejournal.com 2006-05-25 11:06 am (UTC)(link)
(и разумеется вместо етпа 2 - коммит может произойти другое - роллбек Тогда все данные вернутся из роллбек-сегмента обратно в таблицу так как будто они всегда там были)