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

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

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

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

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

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

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

А из какого места по ссылке ты высосал, что при чтении берётся эксклюзивный латч?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363651
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неугомонный оптимизатор...и всё) на этом структура данных свою работу выполнила - дала информацию обоим потокам, что "в этой цепочке блока нет". а дальшеНе торопись. Сперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать...
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363674
ElicСперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать...ну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку, "я меняю данные в цепочке, никому пока не читать" (а повесит ее тот из двоих кто успеет раньше). но ведь большинство запросов находят свои данные? зачем их выстраивать в очередь?
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363688
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неугомонный оптимизаторну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку,Чтобы сперва ещё раз поискать?..
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363728
ElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочку
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363750
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неугомонный оптимизаторElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочкуПока ты искал, некто третий ждал, чтобы по твоей же логике повесить экслюзивную блокировку, чтобы загрузить тот же блок, и таки повесил, а ты стал за ним в очередь...
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363963
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цепочка организована в виде
заголовок1 -> заголовок2 -> заголовок3 -> ...
Ты прочитал "заголовок1", получил ссылку на "заголовок2" и ушел курить бамбук
Другая сессия в это время удалила "заголовок2" из цепочки
Ты проснулся...
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39363964
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да, защелки могут браться как в исключительном режиме (eXclusive mode), так и в разделяемом (Shared mode)
С 9i, по-моему
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39364024
Вячеслав ЛюбомудровТы проснулся... это произойдет, если совсем не вешать никаких защелок на цепочку. а если повесить защелку в shared режиме, то такой проблемы не возникнет, т.к. в этом режиме удалить будет нельзя. вопрос был именно в том, почему Oracle использует exclusive mode при поиске в цепочке
...
Рейтинг: 0 / 0
CBC -> читатель блокирует читателя?
    #39364047
Вячеслав ЛюбомудровИ да, защелки могут браться как в исключительном режиме (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
CBC -> читатель блокирует читателя?
    #39364304
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну смотри
Тебе нужен блок (про его существование ты тоже узнал из ораклевых вьюшек/таблиц)
По dba и типу блока ты получаешь некий хеш, который можно транслировать в адрес элемента массива, хранящий ссылочку на цепочку заголовков блоков для этого DataBaseAddress
Дальше ты вешаешь разделяемую (Shared) защелку (если получится, а то ведь кто-то повесил исключительную) и начинаешь поиск в списке по цепочке. Список обычно короткий, только не надо забывать что там может храниться несколько CR-версий одного и того же блока (обычно не больше 5, но есть параметр). Но, благодаря твоей защелке, можно гарантировать что никто не поменяет ни цепочку, ни флаг доступности для других
Нашел подходящий
Далее тебе надо гарантировать, что никто его тоже не посчитает подходящим для себя
Делаешь конверсию Shared->eXclusive, получаешь защелку на цепочку в исключительном режиме (никто не сможет получить ее в Shared mode), вешаешь pin на заголовок блока и отпускаешь защелку цепочки.
На все про все микросекунды.
А ведь еще не надо забывать про RAC
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / CBC -> читатель блокирует читателя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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