LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Любой алгоритм, сжимать блоками по N килобайт, где N выбирается как компромисс между степенью сжатия и оверхедом по времени работы. Рядом с блоками хранить отображение номера строки в оффсет начала блока + оффсет внутри блока, распаковывать целиком блок и вытаскивать оттуда. Чем больше блок, тем лучше будет сжатие, но тем больше нерелевантных данных придётся распаковывать на каждый запрос.

Если что, все ФС с прозрачным сжатием устроены точно так же.

Алгоритмов сжатия, в которых можно было бы разжимать с произвольного места побайтово, я не знаю.

Исправление intelfx, :

Любой алгоритм, сжимать блоками по N килобайт, где N выбирается как компромисс между степенью сжатия и оверхедом по времени работы. Рядом с блоками хранить отображение номера строки в оффсет начала блока + оффсет внутри блока, распаковывать целиком блок и вытаскивать оттуда. Чем больше блок, тем лучше будет сжатие, но тем больше нерелевантных данных придётся распаковывать на каждый запрос.

Алгоритмов сжатия, в которых можно было бы разжимать с произвольного места побайтово, я не знаю.

Исходная версия intelfx, :

Любой алгоритм, сжимать блоками по N килобайт, где N выбирается как компромисс между степенью сжатия и оверхедом. Отдельно хранить индекс номера строки в оффсет начала блока + оффсет внутри блока, разжимать целиком блок и вытаскивать оттуда.

Алгоритмов сжатия, в которых можно было бы разжимать с произвольного места побайтово, я не знаю.