bup-margin - tìm ra biên độ an toàn chống trùng lặp của bạn
bup margin [options...]
bup margin lặp qua tất cả các đối tượng trong kho lưu trữ bup của bạn, tính toán số bit tiền tố lớn nhất được chia sẻ giữa hai mục nhập bất kỳ. Số này, n, xác định tập hợp con dài nhất của SHA-1 mà bạn có thể sử dụng và vẫn gặp phải xung đột giữa các id đối tượng của mình.
Ví dụ: một hệ thống đã được kiểm tra có bộ sưu tập gồm 11 triệu đối tượng (70 GB) và bup margin trả về 45. Điều đó có nghĩa là hàm băm 46 bit sẽ đủ để tránh tất cả xung đột giữa tập hợp các đối tượng đó; mỗi đối tượng trong kho lưu trữ đó có thể được xác định duy nhất bằng 46 bit đầu tiên của nó.
Số lượng bit cần thiết dường như tăng khoảng 1 hoặc 2 cho mỗi lần nhân đôi số lượng đối tượng. Vì hàm băm SHA-1 có 160 bit, nên còn lại 115 bit lề. Tất nhiên, vì hàm băm SHA-1 về cơ bản là ngẫu nhiên, nên về mặt lý thuyết, có thể sử dụng nhiều bit hơn với ít đối tượng hơn.
Nếu bạn hoang tưởng về khả năng xảy ra xung đột SHA-1, bạn có thể theo dõi kho lưu trữ của mình bằng cách thỉnh thoảng chạy bup margin để xem liệu bạn có đang tiến gần đến 160 bit một cách nguy hiểm hay không.
Đoán độ lệch vào từng tệp chỉ mục nơi một đối tượng cụ thể sẽ xuất hiện và báo cáo độ lệch tối đa của câu trả lời đúng so với dự đoán. Điều này có khả năng hữu ích để điều chỉnh thuật toán tìm kiếm nội suy.
không sử dụng tệp .midx, chỉ sử dụng tệp .idx. Điều này chỉ thực sự hữu ích khi được sử dụng với --predict.
$ bup margin
Reading indexes: 100.00% (1612581/1612581), done.
40
40 matching prefix bits
1.94 bits per doubling
120 bits (61.86 doublings) remaining
4.19338e+18 times larger is possible
Everyone on earth could have 625878182 data sets
like yours, all in one repository, and we would
expect 1 object collision.
$ bup margin --predict
PackIdxList: using 1 index.
Reading indexes: 100.00% (1612581/1612581), done.
915 of 1612581 (0.057%) bup-midx(1), bup-save(1)
Một phần của bộ bup(1).
Avery Pennarun