# The At-Most-Once Problem: Definitions, Solutions and Impossibility Results

## Abstract

We introduce the at-most-once and strong at-most-once problems in the asynchronous shared memory model. The at-most-once problem requires that a set of n jobs is performed using m fail-prone processors, while maintaining at-most-once semantics. The strong at-most-once problem, imposes the additional restriction, that if no participating processors fail, all jobs must be performed. We rigorously define the problems and performance metrics, show upper bounds and impossibility results and provide deterministic and randomized solutions. The at-most-once semantic is one of the standard safety guarantees for object access in decentralized systems. We investigate implementations of at-most-once access semantics in a model where a set of actions is to be performed by a set of failure-prone, asynchronous shared-memory processes. We formally introduce the at-most-once problem for performing a set of n jobs using m processors. We also introduce a notion of efficiency for at-most-once protocols, called effectiveness, used to classify algorithms. Effectiveness measures the number of jobs safely completed by an implementation. We prove an upper bound of n-f on the effectiveness of any algorithm, where f the number of process crashes in the presence of an adversary. We explore the feasibility of a strong effectiveness version of the at-most-once problem. The strong at-most-once problem is solved by an at-most-once algorithm when all tasks are performed, if no participating processes fail during the execution of the algorithm. We formally define the problem and prove that the strong at-most-once problem has consensus number 2, hence there exist no wait-free deterministic solutions for the problem in asynchronous shared memory, using atomic read/write registers. We prove that the upper bound on effectiveness of n-f can be matched asymptotically in the two process setting. We then generalize our two-process solution in the multi-process setting with a hierarchical algorithm that achieves effectiveness of n-log m o(n). Moreover, we present and analyze a wait-free deterministic algorithm for the at-most-once problem, that provides for the first time nearly optimal effectiveness for the multi-process setting. Finally we present the first randomized solution for the strong at-most-once problem. The solution is work optimal in expectation for a non-trivial number of participating processes. We also present an adaptive randomized solution for the Write-All problem. Our solution has high probability work that is linear plus some additive term that only depends on the number of participating processes k and not the size of the problem n or the total number of processes m