Я хочу создать распределенное взаимное исключение, используя таблицу базы данных. Было бы неплохо иметь следующий интерфейс для хранимой процедуры:
Wait (UniqueIdentifier)
Первоначально я думал о реализации этого, имея таблицу уникальных идентификаторов. Вызов процедуры будет ждать, пока в таблице не будет уникального идентификатора. Однако я не уверен, как заставить вызывающий поток проснуться, когда указанный уникальный идентификатор был удален из таблицы.
Есть идеи? Если база данных не подходит для этого, существуют ли какие-либо сторонние инструменты, которые будут работать (желательно с открытым исходным кодом)?
(Чтобы избежать взаимных блокировок, я либо хочу включить тайм-аут в операцию ожидания, либо SqlCommand имеет тайм-аут)