powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теоретический вопрос про неизбежность deadlock-ов
25 сообщений из 76, страница 1 из 4
Теоретический вопрос про неизбежность deadlock-ов
    #38301740
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, интересует теоретический вопрос, бывают ли такие ситуации,
когда на этапе разработки системы возникает "ситуация потенциално возможного" (риск) деадлока, которую нельзя устранить? Другими словами, система полностью подконтрольна, внешних источников помех нет, но задачи такие, что деадлок становится реалным риском, который принимается как сущность, данная нам свыше.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38301753
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты эта... точно не путаешь deadlock и update conflict?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38301927
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТы эта... точно не путаешь deadlock и update conflict?..

Речь иммено о деадлоках. Система конечно многоползовательская: куча сессий с непредсказуемым поведением.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38301990
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При куче сессий с непредсказуемым поведением шанс дедлока будет как минимум на любом блокировочнике, и вряд ли с этим можно будет что-то сделать.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38302019
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronРечь иммено о деадлоках.
Деадлоки это артефакт реализации конкретной СУБД. Никакой общей теории для них нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38302205
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronКоллеги, интересует теоретический вопрос, бывают ли такие ситуации,
когда на этапе разработки системы возникает "ситуация потенциално возможного" (риск) деадлока, которую нельзя устранить?


Она собственно никогда и не исчезает, эта ситуация, если есть больше одного пользователя, или есть многозадачность какая-то --
всегда есть вероятность возникновения deadlock-ов.

mikronДругими словами, система полностью подконтрольна, внешних источников помех нет, но задачи такие, что деадлок становится реалным риском, который принимается как сущность, данная нам свыше.

Риск дедлока всегда есть, может быть достаточно маленький, но есть.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38302208
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmikronРечь иммено о деадлоках.
Деадлоки это артефакт реализации конкретной СУБД. Никакой общей теории для них нет.


Здрасте, очень даже есть.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38302243
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОна собственно никогда и не исчезает, эта ситуация...
Риск дедлока всегда есть, может быть достаточно маленький, но есть.
Другими словами, на этапе проектирования был выявлена потенциальная ситуация дед дока,и нету возможности её исправить изменив порядок выполнения запросов и деталей реализации?т.е именно функциональные требовани определяют риск деадлока. Приведете пожалуйста пример. Я таких как-то не найду. Всегда находится решение. Не забывайте, система в разработке и можно любое поведение изменить. Не изменяемы толко функциональные требования к системе.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38302516
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronт.е именно функциональные требовани определяют риск деадлока. Приведете пожалуйста пример. Я таких как-то не найду.Не думаю, что найдете. Всегда можно переписать так, что проблема уйдет.

Даже в случае багов, например когда разные потоки распараллеленного запроса лочат друг друга, обычно есть выход.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38303643
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЗдрасте, очень даже есть.
пожалуйста, покажите направление поиска. А то пока как в анекдоте, чувствую, что теоретически - литр, а математически обосновать не могу.
В смылсе, не могу найти примера, когда нельзя устранить деадлок. но может он всё-таки существует.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38304633
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronВ смылсе, не могу найти примера, когда нельзя устранить деадлок. но может он всё-таки существует.
Лично я вижу простое, в одну строчку, доказательство того, что любой дедлок можно устранить
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38304902
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЛично я вижу простое, в одну строчку, доказательство того, что любой дедлок можно устранить
Разрешаю разгласить тайну: показывайте эту строчку.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38305062
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronsoftwarerЛично я вижу простое, в одну строчку, доказательство того, что любой дедлок можно устранить
Разрешаю разгласить тайну: показывайте эту строчку.
Подсказываю: для того, чтобы дедлок имел шанс возникнуть, должны быть выполнены некоторые условия. Существует техническая возможность сравнительно просто перестроить работу любой произвольной ИС таким способом, чтобы одно из этих условий заведомо не выполнялось.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38305569
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы все исходите в ваших рассуждениях из того, что порядок обращения к ресурсам системы детерминирован. В таком случае, если порядок можно менять, то всегда можно найти

Но это не всегда так, есть системы, где порядок доступа к ресурсам не определен вообще, случаен.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38305629
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivесть системы, где порядок доступа к ресурсам не определен вообщеДидлок - следствие конкуренции процессов за ресурсы. Нет конкуренции, нет дидлоков.

P.S. "В очередь, сукины дети !" ©
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38306021
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivесть системы, где порядок доступа к ресурсам не определен вообще, случаен.

Но и в них дедлока можно избежать если отпускать занятый ресурс прежде чем становиться в
очередь за новым.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38306069
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Можно, если это можно делать, и можно это контролировать.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38306800
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA MasterZiv есть системы, где порядок доступа к ресурсам не определен вообще
Дидлок - следствие конкуренции процессов за ресурсы. Нет конкуренции, нет дидлоков.
P.S. "В очередь, сукины дети !" ©


Правильно.
Поэтому, чтобы покупатели не подрались у полки в магазине за последнюю модель самолёта с серийным номером 321 и одну из баночек краски защитного цвета (без которой обычно эту модель никто не покупает), мы будем сукиных детей в магазин запускать по очереди :).
Хотя нам, продавцам, совершенно всё равно, если два покупателя подерутся за эту модельку прямо у полки .
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38306835
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermikronпропущено...

Разрешаю разгласить тайну: показывайте эту строчку.
Подсказываю: для того, чтобы дедлок имел шанс возникнуть, должны быть выполнены некоторые условия. Существует техническая возможность сравнительно просто перестроить работу любой произвольной ИС таким способом, чтобы одно из этих условий заведомо не выполнялось.

1. softwarer, непонятно что такое "произвольной ИС".
2. mikron, непонятно что такое "система полностью подконтрольна".
3. mikron, непонятно что такое "внешних источников помех нет".

4. mikron, любой путь ухода от дедлока потребует дополнительных затрат со стороны системы:
1) дополнительные ресурсы памяти;
2) дополнительные вычисления;
3) дополнительное время на обработку;

или может "упереться" в нефункциональные требований (при имеющихся ограничениях в вычислительных ресурсах):

1) максимальное время обработки пакета не должно превышать ...;
2) количество повторных попыток обработки пакета не должно превышать ...;
3) время ожидания пакета до обработки не должно превышать ...;

Какая-то тонкость кроется в твоём ограничении "Не изменяемы только функциональные требования к системе"...

Если нет нефункциональных требований ("быстрая" обработка множества ресурсов) и архитектурных требований ("должно" быть множество потоков/процессов/процессоров), то чисто архитектурные решения для ухода от риска дедлока найдутся: здесь уже озвучено "В очередь!" и ещё пара-тройка найдётся даже на википедии...
Озвучь, в чём твой риск дедлока состоит? :).

Привожу теоретический пример:

1. Среда:
1.1. В системе есть множество ресурсов;
1.2. Есть внешняя среда, из которой хаотично в систему поступают "пакеты";
1.3. Содержимое пакета: критерий (условие отбора подмножества ресурсов) и задача для обработки ресурсов из этого подмножества;
1.4. подмножества, отобранные по критериям пакетов, могут пересекаться.

2. Задача системы:
"обрабатывать" пакеты: находить ресурсы по критериям и выполнять над каждым из ресурсов поставленную задачу.

3. Функциональные требования (как следствие свойств ресурса и характера задач)
3.1. Над конкретным ресурсом в один момент времени может выполняться только одна задача;
3.2. Ресурсы, отобранные по критерию одного пакета, должны обрабатываться "как единое целое":
3.2.1. чтобы пакет считался обработанным, должен быть обработан каждый ресурс, указанный в пакете;
3.2.2. пока в пакете есть необработанные ресурсы, уже обработанные ресурсы пакета не должны быть доступны для выполнения задач других пакетов;

Если есть архитектурное решение/требование "Многопроцессная среда обработки" (чтобы не было желающих устроить одну и только одну очередь :), получаем потенциальный риск дедлока...

А устранить можно всегда, если "нам всё подконтрольно" (с) mikron, и если не упрёмся в нефункциональные требования при ограничениях вычислительных ресурсов...
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38306930
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойПоэтому, чтобы покупатели не подрались у полки в магазине за последнюю модель самолёта с серийным номером 321 и одну из баночек краски защитного цвета (без которой обычно эту модель никто не покупает), мы будем сукиных детей в магазин запускать по очереди :).
Хотя нам, продавцам, совершенно всё равно, если два покупателя подерутся за эту модельку прямо у полки .
Не обязательно.. Надо просто модель продавать тому, кто схватит ее первым, а краску только обладетелю модели. Точнее организовать конвеер. Т.е. продавать товары в порядке артикула.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38307049
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovАнатоЛойПоэтому, чтобы покупатели не подрались у полки в магазине за последнюю модель самолёта с серийным номером 321 и одну из баночек краски защитного цвета (без которой обычно эту модель никто не покупает), мы будем сукиных детей в магазин запускать по очереди :).
Хотя нам, продавцам, совершенно всё равно, если два покупателя подерутся за эту модельку прямо у полки .
Не обязательно.. Надо просто модель продавать тому, кто схватит ее первым, а краску только обладетелю модели. Точнее организовать конвеер. Т.е. продавать товары в порядке артикула.
Артикулы А, Б, В. 1-му покупателю нужно А и В, второму Б и В. Продай в порядке артикулов, если В в 1-ом экземпляре... Всё равно за В передерутся.
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38307050
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойВсё равно за В передерутся.
Да, но дедлока не будет. Второй просто подождёт пока не подвезут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38307107
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovАнатоЛойВсё равно за В передерутся.
Да, но дедлока не будет. Второй просто подождёт пока не подвезут.

Согласен, недосмотрел.
Такая модель предполагается в общепите. Это заставляет каждого покупателя идти в общей очереди, ждать пока не принесут очередное нужное ему блюдо, а пришедшие после него, если им это блюдо не нужно, обходят тормознувшего.

Теперь допускаем, что покупатели могут бессовестно произвольно бродить, выбирая блюда. При дефиците в столовой образуется группа чуваков с пирожным без компота, и группа с компотом без пирожных. Причем барышни этих чуваков заняли уже все места, и на улице есть куча желающих похлебать борщика, но мест в столовой уже нет. Компота и пирожных до завтра не будет... Чуваки попались гордые и без полноценного полудника к барышням не вернутся....
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38307111
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойТеперь допускаем, что...
....система построена без использования естественного интеллекта. Ну и кто при этом ССЗБ?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Теоретический вопрос про неизбежность deadlock-ов
    #38307203
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, решения известны. Т.е. теоретически можно постоить систему без дедлоков. Главное, не путать дедлоки с просто локами. На всякий случай, многие базы данных умеют обнаруживать дедлоки и их разблокировать. Да, при этом выдается ошибка. Но особо страшного то в этом ничего нет?
Т.е. надо не забыть настроить таймаут для выполнения стейтментов.
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 1 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теоретический вопрос про неизбежность deadlock-ов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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