Tags:
Node Thumbnail

ไมโครซอฟท์เขียนอธิบายเบื้องหลังการปรับไฟล์อัพเดตรายเดือน (quality update) ของ Windows 11 ให้มีขนาดเล็กลง 40% ผลคือดาวน์โหลดเร็วขึ้น แต่ยังอัพเดตได้ตามปกติเหมือนเดิม

จุดเปลี่ยนที่ทำให้ไฟล์เล็กลงเป็นวิธีการทำ delta ที่หาความแตกต่างระหว่างไฟล์สองเวอร์ชัน ไมโครซอฟท์เริ่มใช้ไฟล์อัพเดตแบบ delta มาตั้งแต่ Windows 10 v1809 แต่การทำ delta ต้องทำทั้งสองขา คือขาไปข้างหน้า (ไฟล์เก่า -> ใหม่) และขากลับ (ไฟล์ใหม่ -> เก่า) ใช้ในกรณี rollback

ถึงแม้ความแตกต่างของไฟล์สองเวอร์ชันจะเหมือนกัน แต่การทำ delta ขาไปและขากลับนั้นแตกต่างกัน (ดูภาพประกอบ) ทำให้ไฟล์อัพเดตของไมโครซอฟท์ต้องเก็บ delta ทั้งสองขา (bidirectional)

No Description

ไมโครซอฟท์จึงปรับวิธีการทำ delta ใหม่ แทนที่จะเปรียบเทียบไฟล์เก่า-ใหม่สองขาแบบเดิม เปลี่ยนมาเป็นตอนทำ delta ขาไป จะจดความเปลี่ยนแปลงเก็บไว้สำหรับการทำ reverse delta ด้วย (ใช้ชื่อเรียกว่า reverse mapping)

สิ่งที่ไมโครซอฟท์พบคือการจดขั้นตอนเพื่อทำ reverse mapping มีเนื้อหาไฟล์ไม่ต่างจาก forward delta มากนัก ในขณะที่ประสิทธิภาพของการ apply patch ไม่ต่างจาก reverse delta แบบปกติ

No Description

ในการทำแพตช์จริงๆ จะเป็นการเปลี่ยนแปลงไฟล์ assembly ตามภาพ โดยใช้เอนจิน MSDelta หาความเปลี่ยนแปลงระหว่างไฟล์สองเวอร์ชัน

สิ่งที่ไมโครซอฟท์ทำคือส่งเฉพาะไฟล์ forward delta ไปกับไฟล์อัพเดต (ทำให้ขนาดลดลงไป 40%) แล้วให้เครื่องปลายทาง apply patch พร้อมสร้าง reverse delta mapping เก็บเอาไว้เผื่อว่าจะต้อง rollback กลับไปยังสถานะเดิม

No Description

ที่มา - Microsoft via ZDNet

Get latest news from Blognone

Comments

By: langisser
In Love
on 14 October 2021 - 15:53 #1227636

ทำไปได้ งานนี้ algorithm คงต้องแม่นสุดๆ