Content deleted Content added
→Other implementations: Updated Redis license information. Tags: Mobile edit Mobile web edit |
m Disambiguating links to Deadlock (link changed to Deadlock (computer science); link changed to Deadlock (computer science); link changed to Deadlock (computer science)) using DisamAssist. |
||
Line 64:
== Deadlock detection ==
When one or more processes have obtained locks on resources, it is possible to produce a situation where each is preventing another from obtaining a lock, and none of them can proceed. This is known as a [[Deadlock (computer science)|deadlock]] ([[E. W. Dijkstra]] originally called it a [[Deadlock (computer science)|deadly embrace]]).<ref>{{cite book|page=105|url=https://books.google.com/books?id=E6wOK8OYBG4C&pg=PA105|title=Ada: Concurrent Programming|isbn=9780929306087|last1=Gehani|first1=Narain|year=1991| publisher=Silicon Press }}</ref>
A simple example is when Process 1 has obtained an exclusive lock on Resource A, and Process 2 has obtained an exclusive lock on Resource B. If Process 1 then tries to lock Resource B, it will have to wait for Process 2 to release it. But if Process 2 then tries to lock Resource A, both processes will wait forever for each other.
Line 89:
* [[Redis]] is an open source, Redis Source Available License licensed, advanced key-value cache and store.<ref name="redis">{{cite web |url=http://redis.io/ |title= |website=redis.io |access-date=2015-04-14}}{{title missing|date=May 2022}}</ref> Redis can be used to implement the Redlock Algorithm for distributed lock management.<ref name="redlock">{{Cite web|url=http://redis.io/topics/distlock|title=Distributed locks with Redis – Redis|website=redis.io|access-date=2015-04-14}}</ref>
* HashiCorp's [[Consul (software)|Consul]],<ref name="consul">[https://consul.io/ Consul Overview]. Retrieved on 2015-02-19.</ref> which was created by [[HashiCorp]], is open-source software and can be used to perform distributed locks as well.
* Taooka distributed lock manager<ref name="taooka">[http://taooka.com/ Taooka Description] {{Webarchive|url=https://web.archive.org/web/20170503112902/http://taooka.com/ |date=2017-05-03 }} Retrieved on 2017-05-04.</ref> uses the "try lock" methods to avoid [[Deadlock (computer science)|deadlock]]s. It can also specify a TTL for each lock with nanosecond precision.
* A DLM is also a key component of more ambitious [[single system image]] (SSI) projects such as [[OpenSSI]].
|