Para que esse algoritmo trabalhe de forma decente em dados orientados a registros, você provavelmente deseja agrupar seus registros em blocos de, digamos, algo como 64 KB cada. Ler um registro será um processo de duas etapas. Primeiro você encontrará o bloco que contém o registro, lerá na memória e comprimirá todo o bloco. Em seguida, você encontrará o registro com o qual você se importa nesses dados descompactados.