We extend the Faulty RAM model by Finocchi and Italiano (2008) by adding a safe memory of arbitrary size S, and we then derive tradeoffs between the performance of resilient algorithmic techniques and the size of the safe memory. Let ? and α denote, respectively, the maximum amount of faults which can happen during the execution of an algorithm and the actual number of occurred faults, with α ? ? . We propose a resilient algorithm for sorting n entries which requires O ( n log ? n + α ( ? / S + log ? S ) ) time and uses ? ( S ) safe memory words. Our algorithm outperforms previous resilient sorting algorithms which do not exploit the available safe memory and require O ( n log ? n + α ? ) time. Finally, we exploit our sorting algorithm for deriving a resilient priority queue. Our implementation uses ? ( S ) safe memory words and ? ( n ) faulty memory words for storing n keys, and requires O ( log ? n + ? / S ) amortized time for each insert and deletemin operation. Our resilient priority queue improves the O ( log ? n + ? ) amortized time required by the state of the art. We study tradeoffs between algorithmic resiliency and hardware resiliency.We extend the Faulty RAM (FRAM) model by adding a safe memory S which is immune to corruptions.We propose a resilient sorting algorithm requiring O ( n log ? n + α ( ? / S + log ? S ) ) time.We propose a resilient priority queue data structure requiring O ( log ? n + ? / S ) amortized time per operation.
['Lorenzo De Stefani', 'Francesco Silvestri']
Exploiting non-constant safe memory in resilient algorithms and data structures