Acesso aleatório a arquivos gzipados?

Eu tenho um arquivo muito grande comprimido com gzip sentado no disco. O ambiente de produção é baseado em "Cloud", então o desempenho do armazenamento é terrível, mas a CPU está bem. Anteriormente, nosso pipeline de processamento de dados começou comgzip -dc streaming dos dados do disco.

Agora, para paralelizar o trabalho, eu quero executar vários pipelines, cada um pegando um par de byte offsets - start e end - e pegando aquele pedaço do arquivo. Com um arquivo simples, isso pode ser conseguido comhead etail, mas não sei como fazê-lo eficientemente com um arquivo compactado; se eugzip -dc e canalizar parahead, os pares de offset que estão no final do arquivo envolverão uma busca desnecessária em todo o arquivo, enquanto ele é descompactado lentamente.

Então, minha pergunta é realmente sobre o algoritmo gzip - é teoricamente possível procurar um byte offset no arquivo subjacente ou obter um pedaço arbitrário dele, sem as implicações de descomprimir todo o arquivo até aquele ponto? Se não, de que outra forma eu particionaria eficientemente um arquivo para acesso "aleatório" por vários processos, minimizando a sobrecarga do throughput de E / S?

questionAnswers(3)

yourAnswerToTheQuestion