В чём ГЛУБИННЫЙ смысл разницы между Lock и Latch?

Павел малый
Дата: 13.06.2006 15:22:30
Доброго времени суток !

Подскажите плс ,
В чём ГЛУБИННЫЙ смысл разницы между Lock и Latch?

Благодарю!
К
Дата: 13.06.2006 15:24:12
А вот в глубине - как раз почти одно и тоже! Имхо Latch=Soft lock
Павел малый
Дата: 13.06.2006 15:27:39
тогда в чём на поверхности разница ?
andrey_anonymous
Дата: 13.06.2006 15:30:13
mcureenab
Дата: 13.06.2006 15:40:38
Павел малый
Доброго времени суток !

Подскажите плс ,
В чём ГЛУБИННЫЙ смысл разницы между Lock и Latch?

Благодарю!


Latch (защёлка) это механизм низкого уровня. Защищает внутренние структуры экземпляра оракл.
Lock (блокировка) - механизм высокого уровня. Защищает структуры базы данных. Он реализуется в частности с использованием механизма Latch.

Пользователь в некоторых пределах может явно или неявно управлять блокировками, тогда как защёлки полностью подчиняются внутренней логике СУБД.
-
Дата: 13.06.2006 15:48:17
[url=http://]http://www.sql.ru/forum/actualthread.aspx?tid=294579&pg=-1&hl=%e0%e0%e7+%ee%f1[/url]
mayton
Дата: 13.06.2006 16:28:50
Я не знаток Оракла. Работаю с ним не более года. Но
как разработчик, рискну предположить что latch - это
критическая секция. Сущность, которой
может владеть единовременно только один процесс (*nix)
или поток (windows) для предотвращения разрушения
внутренней структуры другими процессами (или потоками)
в параллелизме. Как реализованы latch - это уже особенности
ОС и архитектуры.

Так я понимаю.
mcureenab
Дата: 13.06.2006 17:39:06
mayton
Я не знаток Оракла. Работаю с ним не более года. Но
как разработчик, рискну предположить что latch - это
критическая секция. Сущность, которой
может владеть единовременно только один процесс (*nix)
или поток (windows) для предотвращения разрушения
внутренней структуры другими процессами (или потоками)
в параллелизме. Как реализованы latch - это уже особенности
ОС и архитектуры.

Так я понимаю.


Хм. Насколько знаю, критическая секция исключает одновременное выполнение любых процессов и нитей. Latch это скорее семафор или Mutex.
Yuri Pudovchenko
Дата: 14.06.2006 09:56:07
Latch это подмножество Lock.

Lock состоит из двух непересекающихся множеств: Latch и Enqueue.
В соответствии с терминологией компьютерной науки,
Latch - это мьютекс (переключатель), Encueue - это семафор (очередь).

Если по-русски, то блокировки (лок) - это механизм организации последовательного доступа к объектам (памяти, таблицам ...)

Латч работает как защелка (зашел в сортир, закрыл за собой дверь). Все остальные крутятся снаружи и в случайные моменты времени дергают за ручку двери. Но очереди среди них нет!

А Enqueue - это когда все остальные стоят в очереди и соблюдают в ней порядок.

Латчами распоряжается Оракл, очередями управляет ОС.

Латчи - механизм исключительного доступа, (ты пользуешься - другие нет).
А вот запросы в очереди могут просить разделяемый доступ,
когда два и более участников получают доступ к ресурсу одновременно, если при этом не мешают друг другу.