  In asynchronous distributed systems it is very hard to assess if one of the
processes taking part in a computation is operating correctly or has failed. To
overcome this problem, distributed algorithms are created using unreliable
failure detectors that capture in an abstract way timing assumptions necessary
to assess the operating status of a process. One particular type of failure
detector is a leader election, that indicates a single process that has not
failed. The unreliability of these failure detectors means that they can make
mistakes, however if they are to be used in practice there must be limits to
the eventual behavior of these detectors. These limits are defined as the
quality of service (QoS) provided by the detector. Many works have tackled the
problem of creating failure detectors with predictable QoS, but only for
crash-stop processes and synchronous systems. This paper presents and analyzes
the behavior of a new leader election algorithm named NFD-L for the
asynchronous crash-recovery failure model that is efficient in terms of its use
of stable memory and message exchanges.
