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

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

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

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

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

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