XTX Markets ได้เปิดเผยซอร์สโค้ด TernFS ซึ่งเป็นระบบไฟล์แบบกระจายที่จัดการข้อมูลมากกว่า 600 เพตะไบต์สำหรับการดำเนินงานการซื้อขายความถี่สูง แม้ว่าความสำเร็จนี้จะแสดงให้เห็นถึงขนาดที่สำคัญ แต่ชุมชนเทคนิคได้ตั้งคำถามสำคัญเกี่ยวกับตัวเลือกการออกแบบและข้อจำกัดของระบบที่ผู้ใช้ที่มีศักยภาพควรพิจารณา
ข้อกำหนดหลักของ TernFS:
- ขนาด: 600+ เพตะไบต์ในการปรับใช้งานเดียว
- ขนาดไฟล์เฉลี่ย: 2MB (ไม่ได้ปรับให้เหมาะสมสำหรับไฟล์ขนาดเล็ก)
- แบ็กเอนด์: CockroachDB สำหรับการจัดการข้อมูลเมตา
- เครือข่าย: TCP/IP (ไม่รองรับ RDMA)
- การตกลงร่วม: อัลกอริทึมแบบ Raft ที่ปรับแต่งเอง
- ใบอนุญาต: GPL-2.0-or-later (แกนหลัก), Apache-2.0 พร้อม LLVM exception (ไลบรารีไคลเอนต์)
ข้อกังวลด้านประสิทธิภาพและฮาร์ดแวร์
การพึ่งพา TCP/IP แทน RDMA (Remote Direct Memory Access) ของระบบไฟล์นี้ได้รับการวิพากษ์วิจารณ์จากผู้เชี่ยวชาญด้านการจัดเก็บข้อมูล ไดรฟ์ NVMe สมัยใหม่สามารถบรรลุแบนด์วิดท์ที่สูงกว่ามากเมื่อจับคู่กับเทคโนโลยี RDMA แต่ TernFS ใช้การเชื่อมต่อ TCP มาตรฐานผ่านกระบวนการ Go ตัวเลือกการออกแบบนี้อาจจำกัดประสิทธิภาพสำหรับงานที่ใช้การจัดเก็บข้อมูลอย่างเข้มข้น ซึ่งอาจต้องใช้โหนดฮาร์ดแวร์มากกว่าเพื่อให้ได้ปริมาณงานเดียวกันที่ระบบอื่นสามารถทำได้ด้วยเครื่องที่น้อยกว่า
ชุมชนสังเกตว่าระบบไฟล์แบบขนานที่ใช้ RDMA และเครือข่ายเฉพาะทางสามารถบรรลุ 80-90 GB/s ต่อโหนด ซึ่งสูงกว่าสิ่งที่วิธีการที่ใช้ TCP มักจะบรรลุได้อย่างมาก สำหรับองค์กรที่วางแผนการปรับใช้ขนาดใหญ่ ช่องว่างด้านประสิทธิภาพนี้อาจแปลเป็นต้นทุนฮาร์ดแวร์และการดำเนินงานที่สำคัญ
บริบทการเปรียบเทียบประสิทธิภาพ:
- ระบบไฟล์แบบขนานสมัยใหม่: 80-90 GB/s ต่อโหนดด้วย RDMA
- TernFS : ประสิทธิภาพแบบ TCP (ไม่เปิดเผยตัวเลขที่เฉพาะเจาะจง)
- ข้อจำกัดขนาดไฟล์: ไม่เหมาะสำหรับไฟล์ขนาดเล็กเนื่องจากค่าใช้จ่ายของ metadata
- การจำลองแบบ: ความสามารถในการจำลองแบบข้ามทวีปอย่างไร้รอยต่อ
ความเสี่ยงจากการใช้งานแบบกำหนดเอง
TernFS ใช้อัลกอริทึมฉันทามติแบบกระจายที่กำหนดเองแทนการใช้งานที่ได้รับการยอมรับและทดสอบแล้วเช่น Raft มาตรฐาน แม้ว่านักพัฒนาจะอ้างถึงประสบการณ์ของพวกเขากับระบบการซื้อขายเป็นเหตุผล แต่ฉันทามติแบบกระจายเป็นที่ทราบกันดีว่ายากต่อการใช้งานอย่างถูกต้อง ทีมงานยอมรับว่าพวกเขายังไม่ได้เปิดใช้งานการฟื้นตัวอัตโนมัติและวางแผนที่จะตรวจสอบวิธีการของพวกเขาด้วยการทดสอบ Jepsen หลังจากการปรับใช้เท่านั้น
วิธีการนี้ตรงข้ามกับแนวปฏิบัติที่ดีที่สุดของอุตสาหกรรมในการใช้อัลกอริทึมฉันทามติที่ได้รับการพิสูจน์แล้วซึ่งได้รับการทดสอบและตรวจสอบอย่างกว้างขวาง การตัดสินใจนี้สะท้อนถึงการแลกเปลี่ยนระหว่างการปรับแต่งสำหรับความต้องการเฉพาะและความน่าเชื่อถือที่มาพร้อมกับโซลูชันที่เป็นผู้ใหญ่และได้รับการยอมรับอย่างกว้างขวาง
สถาปัตยกรรมทางเทคนิค:
- ระบบไฟล์หลัก: แบ็กเอนด์ CockroachDB
- การจัดเก็บข้อมูล: แบบบล็อกพร้อมกลุ่มการจัดวาง
- โมเดลความสอดคล้อง: ความสอดคล้องแบบสุดท้ายพร้อมการบรรจบกันแบบกำหนดได้
- อินเทอร์เฟซไคลเอนต์: จุดเมานต์ FUSE , Object API , คิวข้อความ
- ข้ามภูมิภาค: การตั้งค่าฉันทามติแบบกระจายหลายภูมิภาค
ข้อจำกัดขนาดไฟล์และข้อจำกัดกรณีการใช้งาน
ระบบระบุอย่างชัดเจนว่าไม่ควรใช้สำหรับไฟล์ขนาดเล็ก โดยมีขนาดไฟล์เฉลี่ย 2MB ข้อจำกัดนี้เกิดจากความท้าทายพื้นฐานในการจัดการเมตาดาต้าสำหรับวัตถุจำนวนมหาศาล ดังที่ผู้เชี่ยวชาญคนหนึ่งอธิบายว่า การจัดการไฟล์เล็กๆ หลายควินทิลเลียนไฟล์สร้างปัญหาการจัดการเมตาดาต้าที่ซับซ้อนซึ่งต้องใช้ตัวเลือกการออกแบบที่ผิดปกติและสามารถทำลายสถาปัตยกรรมการจัดเก็บข้อมูลแบบเดิมได้
ข้อจำกัดนี้ทำให้ความสามารถในการใช้งานของ TernFS แคบลงอย่างมากเมื่อเปรียบเทียบกับระบบไฟล์แบบกระจายอื่นๆ ที่จัดการไฟล์ขนาดเล็กได้อย่างมีประสิทธิภาพมากกว่า องค์กรที่มีภาระงานผสมที่มีไฟล์ขนาดเล็กจำนวนมากจะต้องใช้โซลูชันทางเลือกหรือการปรับโครงสร้างองค์กรข้อมูลอย่างมาก
การเปรียบเทียบกับโซลูชันที่ได้รับการยอมรับ
ชุมชนตั้งคำถามว่าทำไม TernFS ถึงถูกสร้างขึ้นตั้งแต่เริ่มต้นแทนที่จะปรับโซลูชันที่มีอยู่เช่น CephFS ซึ่งก็ดำเนินงานในระดับเพตะไบต์เช่นกัน แม้ว่านักพัฒนา TernFS จะอ้างถึงความต้องการ 600PB ในการปรับใช้เดียวและการจำลองแบบข้ามทวีปที่ไร้รอยต่อเป็นจุดแตกต่างหลัก แต่สมาชิกชุมชนบางคนสังเกตว่ามีการปรับใช้ Ceph ขนาดใหญ่อยู่ แม้ว่ารายละเอียดเฉพาะจะยังคงเป็นความลับเนื่องจากความเป็นส่วนตัวขององค์กร
การเลือกระหว่างการสร้างโซลูชันแบบกำหนดเองกับการปรับโซลูชันที่มีอยู่มักจะขึ้นอยู่กับความสามารถในการบำรุงรักษาระยะยาวและข้อกำหนดคุณสมบัติเฉพาะ TernFS ให้ความสำคัญกับการมีการควบคุมโค้ดเบสอย่างสมบูรณ์เพื่อการแก้ไขและการปรับเปลี่ยนอย่างรวดเร็ว ซึ่งอาจมีค่าสำหรับองค์กรที่มีความต้องการเฉพาะทางและทรัพยากรทางวิศวกรรมที่เพียงพอ
บทสรุป
TernFS แสดงให้เห็นถึงความสำเร็จทางวิศวกรรมที่น่าประทับใจในการจัดการการจัดเก็บข้อมูลขนาดใหญ่สำหรับภาระงานเฉพาะทาง อย่างไรก็ตาม การอภิปรายทางเทคนิคเผยให้เห็นข้อพิจารณาสำคัญสำหรับผู้ที่มีศักยภาพในการนำไปใช้ ตัวเลือกการออกแบบของระบบสนับสนุนกรณีการใช้งานเฉพาะ - ไฟล์ขนาดใหญ่ ข้อมูลที่ไม่เปลี่ยนแปลง และองค์กรที่มีทรัพยากรทางวิศวกรรมจำนวนมากเพื่อรักษาโครงสร้างพื้นฐานแบบกำหนดเอง แม้ว่าขนาด 600PB จะแสดงให้เห็นถึงความสามารถ แต่ข้อจำกัดด้านประสิทธิภาพ การใช้งานแบบกำหนดเอง และข้อจำกัดขนาดไฟล์หมายความว่า TernFS อาจไม่เหมาะสำหรับความต้องการการจัดเก็บข้อมูลแบบกระจายทั้งหมด องค์กรที่พิจารณาการนำไปใช้ควรประเมินอย่างรอบคอบว่าข้อกำหนดของพวกเขาสอดคล้องกับจุดแข็งของระบบหรือไม่และพวกเขาสามารถยอมรับข้อจำกัดที่ได้รับการบันทึกไว้หรือไม่
อ้างอิง: TernFS – An eventualy scalable, multiregion distributed filesystem