Which distributed lock service would you use?
Requirements are:
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.
Teracotta, including the Open Source edition, has distributed locking semantics by using either synchronized
or the java.util.concurrent.ReentrantReadWriteLock
- the latter apparently fitting your requirements.
Update
Since the question now added the requirement of 'mixing' with GigaSpaces, I'm going to say don't mix them. It's just going to add more complexity to your technological stack, and the effort of:
will be better spent creating or implementing a locking solution based on GigaSpaces.