We develop the first dynamic data structures that tolerate
memory faults, lose no data, and incur only an
additive overhead in overall space and time per operation. We obtain such data structures for arrays, linked lists, binary search trees, interval trees, predecessor search, and suffix trees. Like previous data structures,
must be known in advance, but we show how to restore pristine state in linear time, in parallel with queries, making
just a bound on the rate of memory faults. Our data structures require Θ(
) words of safe memory during an operation, which may not be theoretically necessary but seems a practical assumption.