External memory algorithms and data structures