DistributedLock
DistributedLock copied to clipboard
A .NET library for distributed synchronization
From [here](https://github.com/madelson/DistributedLock/blob/master/docs/Semaphores.md#semaphores) > Whenever a distributed semaphore is created, you must specify the max count value as well as the name. Specifying the same name with different max count values...
This will be simpler when we have in-memory implementations, but the interface and providers still provide a good solution.
Add tests for presence of TransactionScope (Transaction.Current). In particular Postgres's transaction detection to avoid statement_timeout leaks and Multiplexing (what happens if the shared connection gets caught up in multiple transactions?)....
Even a very naive and non-optimizing remover suggests that we could remove >70 of our 175 cases, a huge win. We could do this in DEBUG mode only as a...
When https://github.com/dotnet/SqlClient/issues/44 is fixed, upgrade to the latest version of sqlclient and roll back the workaround for this that prevents us from going async. We'll need to make sure the...
Requested by @jsbattig (see https://github.com/madelson/DistributedLock/pull/49). # Desired functionality: * Specify N (> 0) lock names * (Try)Acquire attempts to acquire all. If it fails it acquires NONE * Acquire timeouts...
I notice in this line here: https://github.com/madelson/DistributedLock/blob/1a7a81ced42da04c2e094f7e8be96cbc630dd3c6/DistributedLock.SqlServer/SqlApplicationLock.cs#L88 that you use `@DbPrincipal='public'`. We have several different services connecting to the same DB. Each service is independent (uses a separate schema in...
We shouldn't rely solely on this (we'll still have a busy wait loop with timeouts), but this can allow us to wake up immediately whenever the lock file is deleted....
As more and more types are added, this has gotten quite slow (>5s). Debugging in particular is extremely slow.
When diagnosing #141 I compared our own distributed lock implementation with this one. One, rather big, difference as that we have a long "BusyWaitSleepTime", which is allowed to be long...