bup-midx - справочное руководство, опции, примеры команд


ИМЯ

bup-midx - создать мультииндексный (.midx) файл из нескольких файлов .idx

СИНТАКСИС

bup midx [-o outfile] <-a|-f|idxnames...>

ОПИСАНИЕ

bup midx создает мультииндексный (.midx) файл из одного или нескольких индексных файлов git pack (.idx).

Примечание: вам больше не нужно запускать эту команду вручную. Он запускается автоматически с помощью bup-save(1) и подобных команд.

ПАРАМЕТРЫ

-o, --output=filename.midx

используйте данное имя выходного файла для файла .midx. По умолчанию создается автоматически.

-a, --auto

автоматически генерировать новые файлы .midx для любых файлов .idx, где это будет уместно.

-f, --force

принудительно сгенерировать один новый файл .midx, содержащий все ваши файлы .idx, даже если другие файлы .midx уже существуют. Это приведет к максимальной производительности резервного копирования, но может занять много времени.

--dir=packdir

укажите каталог, содержащий файлы .idx/.midx для работы. По умолчанию это $BUP_DIR/objects/pack.

--max-files

максимальное количество файлов .idx, открываемых одновременно. Вы можете использовать это, если у вас особенно мало доступных дескрипторов файлов, так что midx может завершиться (хотя, возможно, неоптимально), даже если он не может открыть все ваши файлы .idx одновременно. Значение по умолчанию для этой опции должно подойти большинству людей.

--check

проверить файл .midx, убедившись, что все объекты в его файлах .idx существуют внутри .midx. Может быть полезно для отладки.

ПРИМЕРЫ

$ bup midx -a
Merging 21 indexes (2278559 objects).
Table size: 524288 (17 bits)
Reading indexes: 100.00% (2278559/2278559), done.
midx-b66d7c9afc4396187218f2936a87b865cf342672.midx

ОБСУЖДЕНИЕ

По умолчанию bup использует файлы пакетов в формате git, которые состоят из файла пакета (содержащего объекты) и файла idx (содержащего отсортированный список имен объектов и их смещений в файле .pack).

Обычные файлы idx удобны тем, что это означает, что вы можете использовать git(1) для доступа к своим резервным наборам данных. Однако файлы idx могут работать медленно, если у вас много очень больших пакетов (которых обычно нет в git, но часто есть в bup).

Файлы bup .midx состоят из единого отсортированного списка всех объектов, содержащихся во всех файлах .pack, на которые он ссылается. В этом списке можно выполнить двоичный поиск приблизительно за log2(m) шагов, где m — общее количество объектов.

Для дальнейшего ускорения поиска файлы midx также имеют таблицу разветвлений переменного размера, которая сокращает первые n шагов бинарного поиска. С помощью этой таблицы ветвления bup может сузить, на какой странице файла midx будет находиться данный идентификатор объекта (если он существует) с помощью одного поиска. Таким образом, при обычном поиске потребуется только поменять местами две страницы: одну для таблицы разветвлений и одну для идентификатора объекта.

Файлы midx наиболее полезны при создании новых резервных копий, поскольку поиск несуществующего объекта в репозитории обязательно требует просмотра всех индексных файлов, чтобы убедиться, что он не существует. (Поиск объектов, которые действительно существуют, может быть оптимизирован; например, последовательные объекты часто хранятся в одном и том же пакете, поэтому мы можем сначала найти его, используя алгоритм MRU.)

СМОТРИТЕ ТАКЖЕ

bup-save(1), bup-margin(1), bup-memtest(1)

БУП

Часть набора bup(1).

АВТОРЫ

Эйвери Пеннарун apenwarr@gmail.com.