Случайный доступ к сжатым файлам?

У меня есть очень большой файл, сжатый с помощью gzip, сидящий на диске. Производственная среда "Облако»на базе, поэтому производительность хранилища ужасна, но процессор в порядке. Ранее наш конвейер обработки данных начался сgzip -dc потоковая передача данных с диска.

Теперь, чтобы распараллелить работу, я хочу запустить несколько конвейеров, каждый из которых берет пару смещений байтов - начало и конец - и получает этот кусок файла. С простым файлом это может быть достигнуто сhead а такжеtail, но я'я не уверен, как сделать это эффективно со сжатым файлом; Если яgzip -dc и труба вhead, пары смещений, которые находятся ближе к концу файла, будут включать в себя расточительный поиск по всему файлу, как он 'медленно распаковывается.

Так что мой вопрос на самом деле касается алгоритма gzip - возможно ли теоретически найти смещение байта в базовом файле или получить его произвольный кусок, без последствий распаковки всего файла до этого момента? Если нет, то как еще можно эффективно разделить файл дляслучайный» доступ к нескольким процессам при минимизации издержек ввода-вывода?

Ответы на вопрос(3)

Ваш ответ на вопрос