Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / CBC -> читатель блокирует читателя? / 25 сообщений из 33, страница 1 из 2
09.12.2016, 13:06
    #39363373
CBC -> читатель блокирует читателя?
читаю документацию:
oracleThese latches are used when searching for , adding, or removing a buffer from the buffer cache.

правильно ли я понял, что даже при чтении блока(searching for) мы выставляем этот латч на цепочку, и блокируем остальных читателей этого же блока? вопрос - а зачем?
то, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем?
...
Рейтинг: 0 / 0
09.12.2016, 13:11
    #39363383
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторправильно ли я понял
Нет, неправильно.

Поиск блока в кэше - не настолько длительная операция чтобы об этом беспокоиться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.12.2016, 13:15
    #39363390
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторчитаю документацию:
oracleThese latches are used when searching for , adding, or removing a buffer from the buffer cache.

правильно ли я понял, что даже при чтении блока(searching for) мы выставляем этот латч на цепочку, и блокируем остальных читателей этого же блока? вопрос - а зачем?
то, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем?

Это может быть latch free, в этом случае можно увидеть это ожидание на конкурентном чтении.
...
Рейтинг: 0 / 0
09.12.2016, 13:25
    #39363409
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторто, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем?Блокируется не чтение, а поиск того, что читать.
...
Рейтинг: 0 / 0
09.12.2016, 13:30
    #39363415
CBC -> читатель блокирует читателя?
ElicБлокируется не чтение, а поиск того, что читать.а зачем?
...
Рейтинг: 0 / 0
09.12.2016, 13:54
    #39363441
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторElicБлокируется не чтение, а поиск того, что читать.а зачем?Цепочка - сложная динамическая структура. За раз целостно не читается.
...
Рейтинг: 0 / 0
09.12.2016, 14:17
    #39363473
CBC -> читатель блокирует читателя?
ElicЦепочка - сложная динамическая структура. За раз целостно не читается.но по факту читатель блокирует читателя, т.к. всем заинтересованным нужно выполнить "поиск того, что читать" чтобы получить содержимое блока?
Я еще понимаю блокировку "писатели, не меняйте цепочку, мне нужно ее целостно прочитать".
Но не могу догнать зачем при этом блокируются читатели.
...
Рейтинг: 0 / 0
09.12.2016, 14:31
    #39363486
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторно по факту читатель блокирует читателяты еще посчитай количество ядер и синхронизацию системной шины.
...
Рейтинг: 0 / 0
09.12.2016, 15:24
    #39363526
CBC -> читатель блокирует читателя?
-2-ты еще посчитай количество ядер и синхронизацию системной шины.а как связаны ядра и шина с _прикладной_ блокировкой ораклом своих структур в памяти? просьба объяснить
...
Рейтинг: 0 / 0
09.12.2016, 15:27
    #39363529
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизатор,

Хотя бы азы многопоточности изучи...
...
Рейтинг: 0 / 0
09.12.2016, 15:52
    #39363574
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторЯ еще понимаю блокировку "писатели, не меняйте цепочку, мне нужно ее целостно прочитать".
Но не могу догнать зачем при этом блокируются читатели.Двое одновременно не нашли один и тот же блок…
...
Рейтинг: 0 / 0
09.12.2016, 15:56
    #39363578
CBC -> читатель блокирует читателя?
xtender,

если вы не можете объяснить что либо, зачем заниматься бесполезной писаниной в форумах?
По существу - например, countdownlatch защелки в Java позволяют организовать неблокирующее чтение структур памяти несколькими процессами, при той же многоядерности, шинах и многопоточности. Хотелось разобраться, с чем связано блокирование цепочек CBC для читателей
...
Рейтинг: 0 / 0
09.12.2016, 16:03
    #39363587
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизатор, countdownlatch защелки в Java позволяют организовать неблокирующее чтение структур памяти несколькими процессами,Да ну?
...
Рейтинг: 0 / 0
09.12.2016, 16:23
    #39363629
CBC -> читатель блокирует читателя?
ElicДвое одновременно не нашли один и тот же блок…
...и всё) на этом структура данных свою работу выполнила - дала информацию обоим потокам, что "в этой цепочке блока нет". а дальше начинается уже совсем другая работа. например по вычитыванию блока с диска и/или применению undo и добавлению его в цепочки, но там уже совсем другие блокировки, buffer busy etc, разве не так?
а зачем было этих двоих просить читать по очереди?
...
Рейтинг: 0 / 0
09.12.2016, 16:44
    #39363649
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизатора зачем было этих двоих просить читать по очереди?

А из какого места по ссылке ты высосал, что при чтении берётся эксклюзивный латч?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.12.2016, 16:46
    #39363651
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизатор...и всё) на этом структура данных свою работу выполнила - дала информацию обоим потокам, что "в этой цепочке блока нет". а дальшеНе торопись. Сперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать...
...
Рейтинг: 0 / 0
09.12.2016, 16:57
    #39363674
CBC -> читатель блокирует читателя?
ElicСперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать...ну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку, "я меняю данные в цепочке, никому пока не читать" (а повесит ее тот из двоих кто успеет раньше). но ведь большинство запросов находят свои данные? зачем их выстраивать в очередь?
...
Рейтинг: 0 / 0
09.12.2016, 17:11
    #39363688
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку,Чтобы сперва ещё раз поискать?..
...
Рейтинг: 0 / 0
09.12.2016, 17:39
    #39363728
CBC -> читатель блокирует читателя?
ElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочку
...
Рейтинг: 0 / 0
09.12.2016, 17:57
    #39363750
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
неугомонный оптимизаторElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочкуПока ты искал, некто третий ждал, чтобы по твоей же логике повесить экслюзивную блокировку, чтобы загрузить тот же блок, и таки повесил, а ты стал за ним в очередь...
...
Рейтинг: 0 / 0
10.12.2016, 03:47
    #39363963
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
Цепочка организована в виде
заголовок1 -> заголовок2 -> заголовок3 -> ...
Ты прочитал "заголовок1", получил ссылку на "заголовок2" и ушел курить бамбук
Другая сессия в это время удалила "заголовок2" из цепочки
Ты проснулся...
...
Рейтинг: 0 / 0
10.12.2016, 04:18
    #39363964
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
И да, защелки могут браться как в исключительном режиме (eXclusive mode), так и в разделяемом (Shared mode)
С 9i, по-моему
...
Рейтинг: 0 / 0
10.12.2016, 12:11
    #39364024
CBC -> читатель блокирует читателя?
Вячеслав ЛюбомудровТы проснулся... это произойдет, если совсем не вешать никаких защелок на цепочку. а если повесить защелку в shared режиме, то такой проблемы не возникнет, т.к. в этом режиме удалить будет нельзя. вопрос был именно в том, почему Oracle использует exclusive mode при поиске в цепочке
...
Рейтинг: 0 / 0
10.12.2016, 13:37
    #39364047
CBC -> читатель блокирует читателя?
Вячеслав ЛюбомудровИ да, защелки могут браться как в исключительном режиме (eXclusive mode), так и в разделяемом (Shared mode)
С 9i, по-моемуда, действительно . интересно, что andreynikolaev задавался тем же вопросом "it always was a mystery to me why the sessions have to wait for SHARED latch during READ operations like searching the hash chains" и утверждает , что "“cache buffer chains” latches became shared since in 9.2". ушел думать...
...
Рейтинг: 0 / 0
11.12.2016, 09:50
    #39364304
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CBC -> читатель блокирует читателя?
Ну смотри
Тебе нужен блок (про его существование ты тоже узнал из ораклевых вьюшек/таблиц)
По dba и типу блока ты получаешь некий хеш, который можно транслировать в адрес элемента массива, хранящий ссылочку на цепочку заголовков блоков для этого DataBaseAddress
Дальше ты вешаешь разделяемую (Shared) защелку (если получится, а то ведь кто-то повесил исключительную) и начинаешь поиск в списке по цепочке. Список обычно короткий, только не надо забывать что там может храниться несколько CR-версий одного и того же блока (обычно не больше 5, но есть параметр). Но, благодаря твоей защелке, можно гарантировать что никто не поменяет ни цепочку, ни флаг доступности для других
Нашел подходящий
Далее тебе надо гарантировать, что никто его тоже не посчитает подходящим для себя
Делаешь конверсию Shared->eXclusive, получаешь защелку на цепочку в исключительном режиме (никто не сможет получить ее в Shared mode), вешаешь pin на заголовок блока и отпускаешь защелку цепочки.
На все про все микросекунды.
А ведь еще не надо забывать про RAC
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / CBC -> читатель блокирует читателя? / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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