Searching in the presence of linearly bounded errors
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Fault tolerant sorting networks
SIAM Journal on Discrete Mathematics
Comparison-based search in the presence of errors
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
Computing with Noisy Information
SIAM Journal on Computing
Tight Bounds on the Size of Fault-Tolerant Merging and Sorting Networks with Destructive Faults
SIAM Journal on Computing
Searching games with errors---fifty years of coping with liars
Theoretical Computer Science
Dynamic Faults in Random-Access-Memories: Concept, Fault Models and Tests
Journal of Electronic Testing: Theory and Applications
Shared-Memory Simulations on a Faulty-Memory DMM
ICALP '96 Proceedings of the 23rd International Colloquium on Automata, Languages and Programming
Fault tolerant data structures
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
SODA '07 Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms
Combinatorial algorithms for web search engines: three success stories
SODA '07 Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms
Sorting and Searching in Faulty Memories
Algorithmica
Optimal resilient sorting and searching in the presence of memory faults
Theoretical Computer Science
Optimal resilient dynamic dictionaries
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Designing reliable algorithms in unreliable memories
Computer Science Review
Experimental study of resilient algorithms and data structures
SEA'10 Proceedings of the 9th international conference on Experimental Algorithms
Resilient algorithms and data structures
CIAC'10 Proceedings of the 7th international conference on Algorithms and Complexity
Hi-index | 0.00 |
We address the problem of implementing data structures resilient to memory faults which may arbitrarily corrupt memory locations. In this framework, we focus on the implementation of dictionaries, and perform a thorough experimental study using a testbed that we designed for this purpose. Our main discovery is that the best-known (asymptotically optimal) resilient data structures have very large space overheads. More precisely, most of the space used by these data structures is not due to key storage. This might not be acceptable in practice since resilient data structures are meant for applications where a huge amount of data (often of the order of terabytes) has to be stored. Exploiting techniques developed in the context of resilient (static) sorting and searching, in combination with some new ideas, we designed and engineered an alternative implementation which, while still guaranteeing optimal asymptotic time and space bounds, performs much better in terms of memory without compromising the time efficiency.