Which distributed lock service would you use?
Requirements are:
- A mutual exclusion (lock) that can be seen from different processes/machines
- lock...release semantics
- Automatic lock release after a certain timeout - if lock holder dies, it will automatically be freed after X seconds
- Java implementation
- Nice to have: .Net implementation
- If it's free: Deadlock detection / mitigation
- Easy deployment, see note below.
I'm not interested in answers like "it can be done over a database", or "it can be done over JavaSpaces" - I know. I'm interested in a ready, out-of-the-box, proven implementation.