В моем недавнем интервью меня спросили о поиске строки в очень большом файле, полном текстов, который не может быть загружен в основную / оперативную память. Например, файл размером 1 ТБ, когда объем оперативной памяти составляет 1 ГБ.
Я нашел много статей по этому поводу, мало, даже о стековом потоке, но не очень убедительно. Для ПОИСКА люди предлагают использовать кусок данных или читать файл построчно что-то в этом роде. Не удалось найти ответ о том, как читать строку за строкой без загрузки файла, и что, если строка поиска представлена в нескольких чанках (какая-то часть строки в одном чанке, какая-то часть в другом чанке и может быть много чанков, если строка поиска довольно долго), на основании чего мы решаем размер куска. У меня много таких маленьких вопросов, потому что интервьюер задавал их.
Я полагаю, что это уже не гипотетический вопрос, поэтому, если кто-то действительно это реализовал или имеет справедливое представление об этом, поделитесь своими мыслями. Спасибо заранее.
Если возможно, предложите какой-нибудь алгоритм или код в C#. Net.