Algorithms and Data Structures for Massive Datasets