Apple ได้เปิดตัวระบบไฟล์ใหม่ของทางบริษัท โดยใช้ชื่อระบบไฟล์ว่า Apple File System หรือเขียนย่อเป็น APFS โดยระบบไฟล์ใหม่นี้จะมาแทนระบบไฟล์ Hierachical File System หรือ HFS ของทางบริษัทที่ใช้บน Mac กันมาอย่างยาวนาน และช่วงหลังก็ได้ปรับปรุงเป็น HFS+
สำหรับระบบไฟล์ใหม่ของ Apple ตั้งใจจะใช้ตั้งแต่อุปกรณ์เล็กๆ อย่าง Apple Watch จนถึงคอมพิวเตอร์อย่าง Mac Pro โดย APFS มีฟีเจอร์คร่าวๆ ดังนี้
- ปรับปรุงการใช้งานกับ Flash, SSD และใช้งานบนฮาร์ดดิสก์แบบเดิมได้ โดยมีการออกแบบ unique copy-on-write โดยใช้ I/O coalescing เพื่อให้ได้ประสิทธิภาพสูงสุดและยังมีความมั่นคงของข้อมูล
- Space Sharing อนุญาตให้ระบบไฟล์หลายตัวแบ่งปันพื้นที่ว่างภายในที่เก็บข้อมูลได้ คือ APFS จะสามารถเพิ่มและลดขนาดได้โดยไม่ต้องมีการพาร์ทิชั่นฮาร์ดดิสก์ใหม่ เช่น ฮาร์ดดิสก์ขนาด 100GB มีพาร์ทิชั่น A ใช้ 10GB พาร์ทิชั่น B ใช้งาน 20GB พื้นที่ว่างจะถูกแสดงเป็น 70GB ไม่แยกระหว่างพาร์ทิชั่น
- การโคลนไฟล์และไดเรกทอรี่ เช่น คือไฟล์ที่ถูกโคลนออกไปจะไม่ได้ใช้พื้นที่เพิ่มเติม และถ้าไฟล์ที่ถูกโคลนนั้นถูกแก้ไข ก็จะบันทึกเฉพาะส่วนที่ปรับเปลี่ยนเท่านั้น
- snapshot คือส่วนที่อ่านได้อย่างเดียว ระบบปฏิบัติการสามารถใช้งานส่วนนี้ในการทำ backup ได้ และสามารถย้อนการเปลี่ยนแปลงกลับไปได้เช่นกัน
Fast Directory Sizing allows APFS to quickly compute the total space used by a directory hierarchy, and update it as the hierarchy evolves.
- Fast Directory Sizing คำนวณพื้นที่ทั้งหมดโดยใช้ลำดับชั้นของไดเรกทอรี่ และจะอัพเดตเมื่อลำดับชั้นมีการเติบโต
- Atomic Safe-Save แบบดั้งเดิมสำหรับบันเดิลและไดเรกทอรี่ คือจะมีการเปลี่ยนชื่อใน transaction ครั้งเดียว
สำหรับรายละเอียดฉบับเต็มของ APFS สามารถอ่านได้จากที่มา โดยตอนนี้ APFS ได้เปิดทดสอบรุ่นพรีวิวสำหรับนักพัฒนาบน macOS Sierra แล้ว
ที่มา - Apple Developer, AppleInsider
Comments
Clone file แบบแตก branch เก็บ diff มันจะล้ำเกินไปแล้ว
ประหยัดที่สุดๆ แต่ share พื้นที่กันแบบนี้จะมีปัญหาเรื่อง security มั้ยนะ
นี้มันเหมือน SVN เลยปะครับเนี่ย
แว็บแรกคิดเหมือนกันเลย
มันก็คือ function de-duplicate ดีๆ นี่เอง
น่าตื่นเต้นสุดใน WWDC เมื่อคืนแล้ว = ="
ถ้ามี checksum อีกอันจะดีใจมากเลย
original English copy is still in the article
อันนี้เจ๋งแฮะ
เจ๋งๆ
ย่อให้ยาวกว่า เดิม AFS ก็ พอ ละ ต้องมี P แต่ ช่างมันเถอะผมไม่ได้ ใช้
AFS = Andrew File System ครับ
Btrfs?
อ่านไม่รู้เรื่องเลย 55
สรุปว่ามันดีขึ้นใช่ไหมคับ :)
เจ๋งจริง
แต่เสียดายที่อยู่ในเมืองของ Apple
เพราะว่า โอกาสที่มันจะถูกนำไปพัฒนาต่อที่ platform อื่นๆมันแทบจะเป็นไปไม่ได้เลย
Concept นี้มีมาพักใหญ่ ๆ แล้วครับ Apple น่าจะเอาที่มีอยู่และเป็น
Opensource เช่น btrfs, zfs ใน ที่เริ่มใช้ใน Linux, FreeBSD มาต่อยอดเป็น APFS
เพราะฉะนั้นไม่ตัองกังวลครับ
อย่าปักธงหรือตั้งแง่ไปก่อนเลยครับ ลองดู Swift เป็นตัวอย่าง
มันเกินมาหรือเปล่า เพราะมีตัวที่แปลภาษาไทยแล้วครับ
ปล. สงสัยว่าถ้าโคลนไฟล์แล้วมีการแก้ไขไฟล์ต้นฉบับ มันจะโคลนให้อัตโนมัติเพื่อกันไม่ให้มีผลกับไฟล์โคลนอื่นๆ ที่มาอ้างอิงกับไฟล์นี้หรือเปล่าครับ
ไงครับ
ที่ผมหมายถึงคือ สมมุติว่ามีไฟล์ O ที่เก็บ "1234" ไว้ถูกโคลนไปเป็นไฟล์ A แล้วแทนที่ "3" ในไฟล์ A ด้วย "_" ซึ่งเมื่อเปิดไฟล์ A หลังจากที่ถูกแก้แล้วก็จะเห็น "12_4" แล้วอยู่ๆ มีคนไปแก้ไฟล์ O ตรงๆ เลย โดยแทนที่ "12" ด้วย "__" ซึ่งเมื่อเปิดไฟล์ O หลังจากที่ถูกแก้แล้วก็จะเห็น "__34" APFS มันจะจัดการอย่างไรกับการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ O เพราะถ้าเมื่อเปิดไฟล์ A หลังจากที่ไฟล์ O ถูกแก้ไขแล้วเห็น "___4" มันแปลว่าการแก้ไขไฟล์ต้นฉบับจะสร้างผลกระทบต่อไฟล์โคลน แต่ถ้าเมื่อเปิดไฟล์ A หลังจากที่ไฟล์ O ถูกแก้ไขแล้วยังเห็น "12_4" เหมือนเดิม แปลว่าการแก้ไขไฟล์ต้นฉบับจะไม่เกิดผลกระทบไฟล์โคลนครับ
ผมเข้าใจว่าต้นฉบับจะต้องถูก freeze นะครับ แล้วโปรแกรมที่แก้ไขไฟล์ไม่ว่าจะเป็นดั้งเดิมหรือสำเนาก็จะบันทึกส่วนที่ปรับเปลี่ยนเหมือนกันทั้งหมด คือมี "1234" ค้างอยู่ในเครื่องไปเลย แล้วมีบันทึกส่วนที่ปรับเปลี่ยนสองชุดคือ 3->_ กับ 12->__ ครับ
ย้ำว่าผมเข้าใจว่ามันเป็นแบบนั้นนะครับ ของจริงอาจไม่ใช่
อธิบายแบบรวบๆ จะได้เป็นประมาณนี้ครับ (สีเทาคือ block ข้อมูล)
(ผมเบลอตอนทำภาพ ข้างล่างต้องเป็น b.txt ไม่ใช่ c.txt)
สำหรับผู้ใช้ทั่วไปแล้ว copy-on-write ดียังไง สมมติว่าบันทึกไฟล์แล้วไฟดับระหว่างบันทึก ในกรณีที่ใช้ระบบเก็บข้อมูลแบบนี้ ไฟล์จะไม่พังครับ อย่างมากคือกลับไปเวอร์ชั่นก่อนหน้าที่เคยบันทึกไว้ได้สำเร็จ ส่วนข้อเสียของ copy-on-write คือทำให้มี fragment เยอะ ทำให้ไม่ค่อยเหมาะกับ disk ที่มีการ seek ครับ
Hierachical >> Hierarchical