|
|
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
mikronдержать != хлебать Ага, т.е. пользвоатель занимает ресурс, который не в состоянии на данный момент использовать. Этакая собака на сене. mikronПопробуйте доказать что любую многопользователскую систему можно привести к держанию только одного лока и соблюсти все требования АЦИД. А доказательство существования философского камня не хотите? Перечитайте внимательно мой второй пост в этой теме. vromanovПервый уменьшил количество слеледки залочив строку с селедкой. Второй уменьшил остаток молока и залочил кол-во молока. А зачем они их залочили? Достаточно и того факта, что они их изменили. Попытка повторного изменения будет распознана как update conflict и никакого взаимного лока не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2013, 19:37 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
PS: Как я уже сказал? NumbusDB существует. Она многопользовательская и в ней нет дедлоков. Но как они этого добились, я рассказать не смогу: при попытке вкурить её архитектуру у меня срывает крышу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2013, 19:51 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovPS: Как я уже сказал? NumbusDB существует. Она многопользовательская и в ней нет дедлоков. Но как они этого добились, я рассказать не смогу: при попытке вкурить её архитектуру у меня срывает крышу. Дай, плиз, ссылку, на основании которой пытаешься вкурить архитектуру... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 04:01 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
И давайте контрольно сверимся, что мы понимаем под дедлоком: я понимаю это как ситуацию, когда два и более процесса начинают ожидать друг-друга из-за занятых ресурсов, часть которых сами же и не отпускают, а вы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 04:11 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
mikronvromanovпропущено... Аналогия не верна.. Какая аналогия? С чем? Я вобще аналогий не приводил. О чём вы? Мне кажется, вы ломитесь в открытую дверь. Всё что вы говорите - я почти во всём с вами согласен (за исключением в вашем примере: ресурс после изменения нельза освобождать до завершения транзакции), и никогда этому не возражал. Я даже привёл наглядный пример, где этот метод не работает. 14500341 Давайте его обсудим. mikron, мы приводим примеры из жизни или распределенной системы, а коллеги говорят о каком-то ядре СУБД, которому копию ресурса сделать — раз плюнуть. Может это потому, что раздел "проектирование бд"?! Как им объяснить, что даже попытка курьеров сначала обзванивать склады и резервировать товар может привести к дедлоку резервирований: даже в случае, когда курьер отказывается от формирования заказа, если нет части заказа, мы сталкиваемся с ситуацией отказа двум клиентам, хотя одному из них могли собрать заказ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 04:50 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойДай, плиз, ссылку, на основании которой пытаешься вкурить архитектуру... http://tech.groups.yahoo.com/group/Firebird-Architect/messages АнатоЛойдавайте контрольно сверимся, что мы понимаем под дедлоком: я понимаю это как ситуацию, когда два и более процесса начинают ожидать друг-друга из-за занятых ресурсов, часть которых сами же и не отпускают , а вы? Аналогично. Ключевое условие выделено. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 13:51 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАнатоЛойДай, плиз, ссылку, на основании которой пытаешься вкурить архитектуру... http://tech.groups.yahoo.com/group/Firebird-Architect/messages Наверное, неудивительно, если пытаться курить архитектуру NuoDB по сообщениям на форуме Firebird, даже если про нее грузит сам Джим Старки. Может что-то более компактное и систематизированное находил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 18:33 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Про курьера Укрьер должен сначала обзвонить все склады - выяснить наличие товара. Потом, составить свой план. И еще раз обзвонить склады в каком либо фиксированном порядке. Например, по номерам. Другие курьеры поступают также. Если кому-то товара уже хватает, он начинает итерацию сначала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 18:45 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
vromanovПро курьера Укрьер должен сначала обзвонить все склады - выяснить наличие товара. Потом, составить свой план. И еще раз обзвонить склады в каком либо фиксированном порядке. Например, по номерам. Другие курьеры поступают также. Если кому-то товара уже хватает, он начинает итерацию сначала. Задумайся, что делают на самих складах при звонках курьера. На складах резервируют товар при звонке курьера? Если да, то при первом или втором? На одном складе находится только один диспетчер? Если нет, как они резервируют один и тот же товар одновременно для разных курьеров? Как быть, если пока мы оформляли резерв на сотую позицию курьеру К1, второй диспетчер зарезервировал всю 101ую позицию курьеру 2... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:05 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойDimitry Sibiryakovпропущено... http://tech.groups.yahoo.com/group/Firebird-Architect/messages Наверное, неудивительно, если пытаться курить архитектуру NuoDB по сообщениям на форуме Firebird, даже если про нее грузит сам Джим Старки. Может что-то более компактное и систематизированное находил? Кстати, нашел вот это . При наброске картинки получается вообще вменяемо. Осталось вкурить, как это избавляет от дедлоков. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:09 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойАнатоЛойпропущено... Наверное, неудивительно, если пытаться курить архитектуру NuoDB по сообщениям на форуме Firebird, даже если про нее грузит сам Джим Старки. Может что-то более компактное и систематизированное находил? Кстати, нашел вот это . При наброске картинки получается вообще вменяемо. Осталось вкурить, как это избавляет от дедлоков. :) А вот и альтернативная картинка : ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:14 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойАнатоЛойпропущено... Кстати, нашел вот это . При наброске картинки получается вообще вменяемо. Осталось вкурить, как это избавляет от дедлоков. :) А вот и альтернативная картинка : И еще один документ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:27 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойЕсли нет, как они резервируют один и тот же товар одновременно для разных курьеров? Никак, у них непересекающиеся зоны ответственности. Один диспетчер держит левую половину склада, второй - правую. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:34 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойЗадумайся, что делают на самих складах при звонках курьера. На складах резервируют товар при звонке курьера? Если да, то при первом или втором? На одном складе находится только один диспетчер? Если нет, как они резервируют один и тот же товар одновременно для разных курьеров? Как быть, если пока мы оформляли резерв на сотую позицию курьеру К1, второй диспетчер зарезервировал всю 101ую позицию курьеру 2... Резервируют при втором звонке. Диспетчер берет товар и откладывает его в лоток для этого курьера. Один товар в один момент времени может откладывать только один диспетчер. Это называется блокировка. Не надо путать с лком. Если не хватает 101 позиции. Значит делается ролбак. Все товары разрезервируются, и курьер начинает резервировать снова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:38 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНикак, у них непересекающиеся зоны ответственности. Один диспетчер держит левую половину склада, второй - правую. Ну или у них карточки для товаров. И в один момент времени карточка одного товара доступна только одному диспетчеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:39 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
vromanovЭто называется блокировка. Не надо путать с лком. А в чём разница? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:43 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛой, When the Viewer’s Transaction Manager Atom sees the commit of transaction 355555, it tells transaction 377777, “Sorry, your update failed.” ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:44 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАнатоЛойЕсли нет, как они резервируют один и тот же товар одновременно для разных курьеров? Никак, у них непересекающиеся зоны ответственности. Один диспетчер держит левую половину склада, второй - правую. То бишь курьер, звоня на склад, звонит по очереди то одному, то другому диспетчеру. Не многовато ли нужно знать курьеру? Ну или диспетчеры переключают друг на друга. Тогда куча ожиданий переключений курьером, если список для диспетчеров не поделен в соотвествии с вышеупомянутым "мировым порядком номеклатуры". Или один диспетчер постоянно курит вместо работы - в его части списка не поступают заказы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:48 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА в чём разница? Как же я хреново печатаю :( дедлок там имелся в виду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:49 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
vromanovDimitry SibiryakovНикак, у них непересекающиеся зоны ответственности. Один диспетчер держит левую половину склада, второй - правую. Ну или у них карточки для товаров. И в один момент времени карточка одного товара доступна только одному диспетчеру. Да-да, проходили. Даже не развиваю тему, а то вернёмся к копии карточек :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 19:50 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
АнатоЛойТо бишь курьер, звоня на склад, звонит по очереди то одному, то другому диспетчеру. Не многовато ли нужно знать курьеру? Нет, ему достаточно знать телефон диспетчера, который ведёт нужный ему товар. И таки да, курьеры сериализуются на диспетчере. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 20:00 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
ViPRosАнатоЛой, When the Viewer’s Transaction Manager Atom sees the commit of transaction 355555, it tells transaction 377777, “Sorry, your update failed.” ViPRosАнатоЛой, When the Viewer’s Transaction Manager Atom sees the commit of transaction 355555, it tells transaction 377777, “Sorry, your update failed.” Спасибо, тоже уже вкурил. Итог: серебряной пули не нашлось. На страницах 15-17 документа "NuoDB® Emergent Architecture" от 2013 года для не сильно вооружённого глаза написано, как система обнаруживает и устраняет таки возникающие у сессий deadlock'и. Особенно понравилось "All progress stops, until the two transaction Manager Atoms exchange information and the deadlock is found ." Жаль, что посылка Дмитрия о том, что в NimbusDB (теперь уже читай NuoDB) deadlock'ов нет, не подтвердилась... Их "успешно" ищут и устраняет ответственные компоненты системы: "Each of the Transaction Managers checks for a “cycle in the dependency graph”, or in English, a closed loop in the list of transactions waiting for each other." А безвинно попавшие в дедлок получают отлуп: "The Viewer’s transaction 377777 gets a deadlock error ", "The Transaction Manager Atom managing the transaction with the highest transaction identifier tells its Transaction Engine to undo the last SQL statement by that transaction and send it a deadlock error. The application can choose to continue, commit, or roll back, but the particular statement it tried cannot succeed unless the application rolls back the transaction and retries the whole operation. Well-behaved applications roll back their transactions after a deadlock error." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 21:32 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
По русски: "Дедлоки случаются" и в NuoDB, приложения получают выбор, как же с ними поступать, а "благонравные приложения" откатывают свои транзакции после получения сообщений о случившемся дедлоке с их участием. Итог: причины возникновения дедлоков были понятны всем участникам и так. Примеры функциональных требований можно плодить пачками. Основной шаблон получения таких требований: п.1) вынести за рамками подконтрольного системе все условия возникновения дедлока; Для ядра СУБД: сессии, которые плодят транзакции и блокируют записи, как это удобно им. Для распределённой СУБД: те же беспорядочные транзакции. Для любой разрабатываемой системы: ограничить её функциональные рамки, чтобы условия возникновения находились за рамками системы. п.2) вынести за рамки архитектурных или технологических возможностей реализацию известных алгоритмов поиска и устранения дедлока; п.3) добавить ограничения (производительность, эффективность использования ресурсов, просто здравый смысл :)) , которые будут работать на слабые стороны того или иного алгоритма. Пример для нашего склада и курьеров: мы пишем программу для курьеров, но никак не управляем складами (ни процессами/организацией, ни IT-системой управления складом). Таким образом условия возникновения дедлока находятся за рамками нашей системы. ТС, аууууу :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 21:48 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
vromanovПро курьера Укрьер должен сначала обзвонить все склады - выяснить наличие товара. Потом, составить свой план. И еще раз обзвонить склады в каком либо фиксированном порядке. Например, по номерам. Другие курьеры поступают также. Если кому-то товара уже хватает, он начинает итерацию сначала. Элегантное решение, демонстрирует каким образом путём доп. затрат можно избежать деадлока. Оно так же гарантирует что курьер всегда получит оптимальный план. Усложним/дополним модель экспедиторами, которые проставляют артикли на склады. Можно ли теперь гарантировать отсутствие деадлоков и одновременно составление оптимального плана для курьера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 10:03 |
|
||
|
Теоретический вопрос про неизбежность deadlock-ов
|
|||
|---|---|---|---|
|
#18+
Пока получается, в принципе всегда возможна ситуация, где для разрабатываемой системы риск деадлока определяется только функциональными требованиями к системе. Правда разумность функциональных требований не всегда однозначна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 11:01 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38315129&tid=1541155]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 265ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...