ฉันได้สร้างเครื่องมือหลามซึ่งสามารถทำได้ ฉันทำสิ่งนี้เพราะฉันได้ลองวิธีการของ @Thomas Luzat ทั้งของฉันเองและ @Johannes Ernst และการใช้พื้นที่สองเท่าจาก 20GB ถึง 40GB ในขั้นตอนการโคลนนิ่ง ฉันคิดว่าบางสิ่งจำเป็นต้องมีประสิทธิภาพมากขึ้น
พิจารณาประวัติระบบไฟล์ทั่วไปนี้:
current ---------------------------------\
| | | |
snap4 snap3 snap2 snap1
ด้วยอัลกอริธึมของโทมัส "กระแส" จะถูกโคลนก่อนและสแนปชอตทั้งหมด (เป็นสแน็ปช็อตของอดีตรัฐของ "กระแส") จะใช้ "กระแส" เป็นแหล่งกำเนิด / ผู้ปกครองโคลน เห็นได้ชัดว่ามันจะดีกว่าถ้าจะยึดฐาน snap3 บน snap4, snap2 บน snap3 ฯลฯ
และนี่เป็นเพียงส่วนปลายของภูเขาน้ำแข็ง การค้นหาแหล่งโคลนที่ดีที่สุด (ในแง่ของการประหยัดพื้นที่) ในระบบไฟล์ btrfs ที่มีประวัติที่ซับซ้อนเป็นปัญหาที่ไม่สำคัญ ฉันคิดหากลยุทธ์ 3 อย่างเพื่อแก้ปัญหานี้ซึ่งดูเหมือนว่าจะใช้พื้นที่ได้อย่างมีประสิทธิภาพมากขึ้น มีผลทำให้ขนาดของโคลนจริงต่ำกว่าแหล่งที่มาเล็กน้อย
คุณสามารถอ่านรายละเอียดได้ที่หน้า GitHubหากคุณสนใจ