bup-midx - 여러 .idx 파일에서 다중 인덱스(.midx) 파일 생성
bup midx [-o outfile] <-a|-f|idxnames...>
bup midx는 하나 이상의 git pack 인덱스(.idx) 파일에서 다중 인덱스(.midx) 파일을 만듭니다.
참고: 더 이상 이 명령을 직접 실행할 필요가 없습니다. bup-save(1) 및 유사한 명령에 의해 자동으로 실행됩니다.
.midx 파일에 지정된 출력 파일 이름을 사용하십시오. 기본값은 자동 생성입니다.
적절한 경우 모든 .idx 파일에 대해 새 .midx 파일을 자동으로 생성합니다.
다른 .midx 파일이 이미 존재하더라도 모든 .idx 파일을 포함하는 단일 새 .midx 파일을 강제로 생성합니다. 이렇게 하면 백업 성능이 가장 빨라지지만 실행하는 데 시간이 오래 걸릴 수 있습니다.
작업할 .idx/.midx 파일이 포함된 디렉토리를 지정합니다. 기본값은 $BUP_DIR/objects/pack입니다.
한 번에 열 수 있는 최대 .idx 파일 수입니다. 사용 가능한 파일 디스크립터 수가 특히 적은 경우 이를 사용할 수 있으므로 midx가 한 번에 모든 .idx 파일을 열 수 없는 경우에도 완료할 수 있습니다(최적은 아니지만). 이 옵션의 기본값은 대부분의 사람들에게 적합합니다.
포함된 .idx 파일의 모든 개체가 .midx 내에 있는지 확인하여 .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은 팩 파일(객체 포함)과 idx 파일(객체 이름의 정렬된 목록 및 .pack 파일의 오프셋 포함)으로 구성된 git 형식 팩 파일을 사용합니다.
일반 idx 파일은 git(1)을 사용하여 백업 데이터 세트에 액세스할 수 있으므로 편리합니다. 그러나 매우 큰 팩이 많을 때 idx 파일이 느려질 수 있습니다(일반적으로 git에는 없지만 bup에는 자주 있음).
bup .midx 파일은 참조하는 모든 .pack 파일에 포함된 모든 개체의 단일 정렬 목록으로 구성됩니다. 이 목록은 약 log2(m) 단계에서 이진 검색될 수 있습니다. 여기서 m은 총 개체 수입니다.
검색 속도를 더욱 높이기 위해 midx 파일에는 이진 검색의 처음 n 단계를 줄이는 가변 크기의 팬아웃 테이블도 있습니다. 이 팬아웃 테이블의 도움으로 bup은 단일 조회로 주어진 객체 ID가 있는(존재하는 경우) midx 파일의 페이지를 좁힐 수 있습니다. 따라서 일반적인 검색은 팬아웃 테이블용 페이지와 개체 ID용 페이지의 두 페이지만 교체하면 됩니다.
midx 파일은 새 백업을 생성할 때 가장 유용합니다. 저장소에 존재하지 않는 객체를 검색하려면 반드시 모든 인덱스 파일을 검색하여 객체가 존재하지 않는지 확인해야 하기 때문입니다. (존재하는 개체 검색을 최적화할 수 있습니다. 예를 들어 연속 개체는 종종 동일한 팩에 저장되므로 먼저 MRU 알고리즘을 사용하여 개체를 검색할 수 있습니다.
bup-save(1), bup-margin(1), bup-memtest(1)
bup(1) 제품군의 일부입니다.
에이버리 페나룬 apenwarr@gmail.com.