|
|
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
читаю документацию: oracleThese latches are used when searching for , adding, or removing a buffer from the buffer cache. правильно ли я понял, что даже при чтении блока(searching for) мы выставляем этот латч на цепочку, и блокируем остальных читателей этого же блока? вопрос - а зачем? то, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:06 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторправильно ли я понял Нет, неправильно. Поиск блока в кэше - не настолько длительная операция чтобы об этом беспокоиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:11 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторчитаю документацию: oracleThese latches are used when searching for , adding, or removing a buffer from the buffer cache. правильно ли я понял, что даже при чтении блока(searching for) мы выставляем этот латч на цепочку, и блокируем остальных читателей этого же блока? вопрос - а зачем? то, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем? Это может быть latch free, в этом случае можно увидеть это ожидание на конкурентном чтении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:15 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторто, что мы запрещаем менять блок другим сессиям во время его чтения, это понятно, а читать зачем?Блокируется не чтение, а поиск того, что читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:25 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
ElicБлокируется не чтение, а поиск того, что читать.а зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:30 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторElicБлокируется не чтение, а поиск того, что читать.а зачем?Цепочка - сложная динамическая структура. За раз целостно не читается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:54 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
ElicЦепочка - сложная динамическая структура. За раз целостно не читается.но по факту читатель блокирует читателя, т.к. всем заинтересованным нужно выполнить "поиск того, что читать" чтобы получить содержимое блока? Я еще понимаю блокировку "писатели, не меняйте цепочку, мне нужно ее целостно прочитать". Но не могу догнать зачем при этом блокируются читатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 14:17 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторно по факту читатель блокирует читателяты еще посчитай количество ядер и синхронизацию системной шины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 14:31 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
-2-ты еще посчитай количество ядер и синхронизацию системной шины.а как связаны ядра и шина с _прикладной_ блокировкой ораклом своих структур в памяти? просьба объяснить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 15:24 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизатор, Хотя бы азы многопоточности изучи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 15:27 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторЯ еще понимаю блокировку "писатели, не меняйте цепочку, мне нужно ее целостно прочитать". Но не могу догнать зачем при этом блокируются читатели.Двое одновременно не нашли один и тот же блок… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 15:52 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
xtender, если вы не можете объяснить что либо, зачем заниматься бесполезной писаниной в форумах? По существу - например, countdownlatch защелки в Java позволяют организовать неблокирующее чтение структур памяти несколькими процессами, при той же многоядерности, шинах и многопоточности. Хотелось разобраться, с чем связано блокирование цепочек CBC для читателей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 15:56 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизатор, countdownlatch защелки в Java позволяют организовать неблокирующее чтение структур памяти несколькими процессами,Да ну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 16:03 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
ElicДвое одновременно не нашли один и тот же блок… ...и всё) на этом структура данных свою работу выполнила - дала информацию обоим потокам, что "в этой цепочке блока нет". а дальше начинается уже совсем другая работа. например по вычитыванию блока с диска и/или применению undo и добавлению его в цепочки, но там уже совсем другие блокировки, buffer busy etc, разве не так? а зачем было этих двоих просить читать по очереди? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 16:23 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизатора зачем было этих двоих просить читать по очереди? А из какого места по ссылке ты высосал, что при чтении берётся эксклюзивный латч? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 16:44 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизатор...и всё) на этом структура данных свою работу выполнила - дала информацию обоим потокам, что "в этой цепочке блока нет". а дальшеНе торопись. Сперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 16:46 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
ElicСперва информацию о блоке надо добавить именно в эту цепочку. И обоим хотелось бы это сделать...ну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку, "я меняю данные в цепочке, никому пока не читать" (а повесит ее тот из двоих кто успеет раньше). но ведь большинство запросов находят свои данные? зачем их выстраивать в очередь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 16:57 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторну вот тогда(если не нашли) и можно повесить эксклюзивную блокировку на цепочку,Чтобы сперва ещё раз поискать?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 17:11 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
ElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 17:39 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
неугомонный оптимизаторElicЧтобы сперва ещё раз поискать?..почему "еще раз"? если блока в цепочке нет, то вычитать его с диска, применить undo к блоку, и записать его в цепочкуПока ты искал, некто третий ждал, чтобы по твоей же логике повесить экслюзивную блокировку, чтобы загрузить тот же блок, и таки повесил, а ты стал за ним в очередь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 17:57 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
Цепочка организована в виде заголовок1 -> заголовок2 -> заголовок3 -> ... Ты прочитал "заголовок1", получил ссылку на "заголовок2" и ушел курить бамбук Другая сессия в это время удалила "заголовок2" из цепочки Ты проснулся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2016, 03:47 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
И да, защелки могут браться как в исключительном режиме (eXclusive mode), так и в разделяемом (Shared mode) С 9i, по-моему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2016, 04:18 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТы проснулся... это произойдет, если совсем не вешать никаких защелок на цепочку. а если повесить защелку в shared режиме, то такой проблемы не возникнет, т.к. в этом режиме удалить будет нельзя. вопрос был именно в том, почему Oracle использует exclusive mode при поиске в цепочке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2016, 12:11 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровИ да, защелки могут браться как в исключительном режиме (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". ушел думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2016, 13:37 |
|
||
|
CBC -> читатель блокирует читателя?
|
|||
|---|---|---|---|
|
#18+
Ну смотри Тебе нужен блок (про его существование ты тоже узнал из ораклевых вьюшек/таблиц) По dba и типу блока ты получаешь некий хеш, который можно транслировать в адрес элемента массива, хранящий ссылочку на цепочку заголовков блоков для этого DataBaseAddress Дальше ты вешаешь разделяемую (Shared) защелку (если получится, а то ведь кто-то повесил исключительную) и начинаешь поиск в списке по цепочке. Список обычно короткий, только не надо забывать что там может храниться несколько CR-версий одного и того же блока (обычно не больше 5, но есть параметр). Но, благодаря твоей защелке, можно гарантировать что никто не поменяет ни цепочку, ни флаг доступности для других Нашел подходящий Далее тебе надо гарантировать, что никто его тоже не посчитает подходящим для себя Делаешь конверсию Shared->eXclusive, получаешь защелку на цепочку в исключительном режиме (никто не сможет получить ее в Shared mode), вешаешь pin на заголовок блока и отпускаешь защелку цепочки. На все про все микросекунды. А ведь еще не надо забывать про RAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2016, 09:50 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39363578&tid=1886835]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
245ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 595ms |

| 0 / 0 |
