Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Всегда относился к теме изоляции транзакций как просто вопросу на интервью и перед каждым интервью читал статью в русской википедии. У Фаулера в книге пример не про СУБД а про систему контроля версий.
Вот только видимо перевод не очень и не получается понять.

Суть примера в том, что есть 2 чувака - Мартин и Дейвид.
Мартин читает один пакет кода, потом уходит пить чай и затем читает второй пакет.
Пока Мартин пьёт чай Дейвид успевает надобавлять классов в пакеты и наизменять код и всё это дело закоммитить.
В первом пакете изначально 7 классов, а стало 9
Во втором пакете изначально 5 классов, а стало 8



Сначала в книге написано про Serializable, что мол при таком раскладе Дейвид будет ждать пока Мартин попьёт чай и всё такое. Или если вдруг Дейвид начал свою транзакцию раньше, то Мартин будет ждать пока Дейвид закоммитит свою транзакцию. В общем всё ясно.

Дальше идёт речь про первую аномалию - фантомные записи и уровень изоляции, при котором это может происходить это Repeatable read. В книге пишут, что при таком уровне изолированности Мартин в первом пакете увидит 7 файлов, а во втором 8.

Это более менее соотносится с тем, что известно мне про Repeatable read. Новые записи могут появляться в таблице(пакете) после начала транзакции. Только я думал нужно считать одну и ту же таблицу два раза, чтобы это прочувствовать, ну да ладно.

Далее идёт речь про read-committed. Пожалуй просто перепечатаю всё что написано в книге:

Фаулер
Уровень изоляции чтение фиксированных данных(read-committed) разрешает операции неповторяемого чтения(unrepeatable-read). Представим, что Мартин обращает внимание на некие итоговые записи, а не на классы как таковые. Использую операцию неповторяемого чтения, он находит в пакете блокирования(первый пакет) итоговую запись, содержащую значение 7. Неустанный Дейвид осуществляет свою фиксацию, а Мартин, как и прежде, обращаясь к пакету протоколирования(второй пакет), считывает итог, равный восьми.(Если бы Мартин мог повторить операцию чтения записи из пакета блокирования, он, разумеется, получил бы новое значение - девять.) Системе баз данных проще обнаруживать операции неповторяемого чтения, нежели объекты-фантомы, так что уровень повторяемого чтения обеспечивает большую меру корректности данных, но меньшую степень параллелизма.


Дальше я приведу своё понимание того, что такое unrepeatable-read:

Картинка с другого сайта.

При таком раскладе первая транзакция вычитает два раза разные данные ибо она видит уже закомиченные данные и они не блокирует при уровне изоляции read-committed


Мой вопрос про приведенный кусок текста из книги:



Что такое "некие итоговые записи"? Как этот пример соотносится с моим примером взятым из википедии
27 сен 19, 02:02    [21980429]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner,
Сначала нужно кяснить что 99,9 всех проектов делается при read commited.
Это default РСУБД.
27 сен 19, 08:12    [21980479]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
Что такое "некие итоговые записи"?
например
sum( f2)
27 сен 19, 09:08    [21980499]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Что такое "некие итоговые записи"?
например
sum( f2)

Судя по тексту складывается ощущение, что они используют count.

Допустим в каждом классе есть поле с именем f2. И Дейвид некоторые классы изменил и несколько добавил.

В случае Repeatable read Дейвид поменять классы не сможет пока Мартин не закончит транзакций, а добавить сможет.


В случае Read committed Дейвид сможет и изменить и добавить и закоммитить, тогда при повторном чтении Мартин увидит и измененное и добааленные данные

Таки ведь?
27 сен 19, 11:32    [21980673]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
В случае Repeatable read Дейвид поменять классы не сможет пока Мартин не закончит транзакций, а добавить сможет.
да. Но это режим используют редко...в клиент серервере, не в бубличном веб.
27 сен 19, 11:39    [21980687]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48421
PetroNotC Sharp
Сначала нужно кяснить что 99,9 всех проектов делается при read commited.
Это default РСУБД.

Это дефолт Оракула, да и то просто потому, что больше у Оракула работоспособных TIL нет. Но 99,9 всех проектов делаются не на нём.
27 сен 19, 13:38    [21980851]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
Dimitry Sibiryakov,
Ну, я с тобой не согласен, и закончим на этом.
27 сен 19, 13:45    [21980863]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
questioner, я не знаю. Я может и хотел поучаствовать но ты приаттачиваешь картинки с ресурса где
или просрочен сертификат SSL, или HTTP-302 Moved Temporarely.

Я надеюсь что ты когда нибудь будешь внимателен к пожеланиям.
27 сен 19, 14:37    [21980939]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
mayton
questioner, я не знаю. Я может и хотел поучаствовать но ты приаттачиваешь картинки с ресурса где
или просрочен сертификат SSL, или HTTP-302 Moved Temporarely.

Я надеюсь что ты когда нибудь будешь внимателен к пожеланиям.


Да вроде отображается нормально. Ты пробовал в другом бразуере открыть?

ещё одна попытка:

Картинка с другого сайта.
27 сен 19, 15:04    [21980970]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Нифига.
27 сен 19, 15:24    [21981003]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
mayton
Нифига.


Тогда тебе не видны все картинки со SO.

Попробуй другой браузер. С телефона работает?
27 сен 19, 15:30    [21981010]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Да ладно забей. Не настолько надо чтоб я с телефона ходил.
27 сен 19, 15:36    [21981022]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
mayton,

Я сделал всё что мог, сорян
27 сен 19, 15:53    [21981062]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Не пользуйся этим http://dl3.joxi.net

Найди что-то международное.
27 сен 19, 16:31    [21981118]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
mayton
Не пользуйся этим http://dl3.joxi.net

Найди что-то международное.

последняя попытка это https://i.stack.imgur.com/KDtqw.jpg и используется на SO(https://stackoverflow.com/). Более международного мне не придумать)
27 сен 19, 16:45    [21981128]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
Прикрепить файл к сообщение, видимо, верх тупизны и недостойно интеллигента?
27 сен 19, 18:37    [21981226]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Basil A. Sidorov
Прикрепить файл к сообщение, видимо, верх тупизны и недостойно интеллигента?


Soft skills конечно нуждаются в улучшении. Можно было и в нормальной форме написать. Честно говоря, даже не подумал о такой опции.

Пожалуйста, прикрепил.

К сообщению приложен файл. Размер - 43Kb
27 сен 19, 22:57    [21981400]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
questioner
Soft skills конечно нуждаются в улучшении.
Ваша невнимательность оправдания не имеет и, лично я, не собираюсь "облизывать" человека, которому сообщили о проблеме и который продолжает идти по тем же граблям.

К сообщению приложен файл. Размер - 10Kb
28 сен 19, 08:09    [21981508]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Basil A. Sidorov
questioner
Soft skills конечно нуждаются в улучшении.
Ваша невнимательность оправдания не имеет и, лично я, не собираюсь "облизывать" человека, которому сообщили о проблеме и который продолжает идти по тем же граблям.


Какие те же грабли-то? 43 КБ файлик.

Облизывать и соблюдать элементарные нормы приличия это разные вещи
29 сен 19, 00:32    [21981839]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
questioner
Какие те же грабли-то?
Вам: Не видно
Вы: Вот другая ссылка
Вам: Опять не видно (начинается переписка про доступ к разным ресурсам)
Я: Прикрепить файл к сообщение, видимо, верх тупизны и недостойно интеллигента?
Вы: Фу, грубиян. Прикрепил.
43 КБ файлик.
Вы опять невнимательны и не очень сообразительны. Лично я видел вашу вторую ссылку. И, уж если советую прикрепить файл к собщению, то, вероятно, морально готов принять до 150КБ.
И совершенно точно не собираюсь читать лекции о правильной подготовке скриншотов.
Облизывать и соблюдать элементарные нормы приличия это разные вещи
Сарказм никогда не выходил из "норм приличия" - это вас кто-то обманывает.
Я был настолько вежлив, что даже не стал тыкать вас в ЧАВО, где, среди прочего изложены способы оформления таблиц. Хотя для вашего случая хватило бы и тэга fixed.
30 сен 19, 08:09    [21982312]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Basil A. Sidorov
Вы: Фу, грубиян. Прикрепил.
43 КБ файлик.
Вы опять невнимательны и не очень сообразительны. Лично я видел вашу вторую ссылку. И, уж если советую прикрепить файл к собщению, то, вероятно, морально готов принять до 150КБ.
И совершенно точно не собираюсь читать лекции о правильной подготовке скриншотов.


Не понял, Вы что не смогли увидеть прикрепленый файл? В чем невнимательность то?
30 сен 19, 15:45    [21982873]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
questioner
Не понял, Вы что не смогли увидеть прикрепленый файл?
Вы прикрепили файл, процитировав моё сообщение. Вполне логично предположить, что это был ответ именно мне.
Я специально указал, что видел изображение по вашей второй ссылке - чуть напрягшись, можно понять, что лично мне ваш ответ не требовался.
В чем невнимательность то?
В скриншоте, который я привёл, прекрасно виден предельный размер файла, который можно прикрепить к сообщению. Следовательно, ваша ремарка про сорок три килобайта была совершенно не к месту.
И вообще: килобайты файла - далеко не самый важный показатель качества скриншота.

P.S.
Да, я опять "плоско саркастичен".
30 сен 19, 17:00    [21982995]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Basil A. Sidorov
questioner
Не понял, Вы что не смогли увидеть прикрепленый файл?
Вы прикрепили файл, процитировав моё сообщение. Вполне логично предположить, что это был ответ именно мне.
Я специально указал, что видел изображение по вашей второй ссылке - чуть напрягшись, можно понять, что лично мне ваш ответ не требовался.

ну ты и зануда.
Basil A. Sidorov
В чем невнимательность то?
В скриншоте, который я привёл, прекрасно виден предельный размер файла, который можно прикрепить к сообщению. Следовательно, ваша ремарка про сорок три килобайта была совершенно не к месту.
И вообще: килобайты файла - далеко не самый важный показатель качества скриншота.

P.S.
Да, я опять "плоско саркастичен".


Тут я вновь вашего гения не понял. Зачем было акцентировать внимание про предельный размер файла в 150 кб если мой скриншот, который я прикрепил сильно меньше этих 150 кб ?
30 сен 19, 17:41    [21983041]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
questioner
Зачем было акцентировать внимание про предельный размер файла в 150 кб если мой скриншот, который я прикрепил сильно меньше этих 150 кб ?
Когда вы сакцентировали, что ваш скриншот "всего 43КБ", то лично мне было дважды смешно:
1. Мне вообще пофигу размер файла, прикреплённого к сообщению (он маленький в любом случае);
2. Не "всего 43КБ", а "целых 43КБ" - вы просто не умеете их готовить.
1 окт 19, 04:25    [21983408]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Уровни изоляции транзакций на примере системы контроля версий  [new]
questioner
Member

Откуда:
Сообщений: 1865
Basil A. Sidorov
questioner
Зачем было акцентировать внимание про предельный размер файла в 150 кб если мой скриншот, который я прикрепил сильно меньше этих 150 кб ?
Когда вы сакцентировали, что ваш скриншот "всего 43КБ", то лично мне было дважды смешно:
1. Мне вообще пофигу размер файла, прикреплённого к сообщению (он маленький в любом случае);
2. Не "всего 43КБ", а "целых 43КБ" - вы просто не умеете их готовить.


Я не спрашивал почему вам смешно. Я спрашивал зачем вы акцентировал внимание на 150 кб
1 окт 19, 11:07    [21983571]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить