
ที่มาภาพ: The Register
Cursor เปิด Origin บน S3 เพื่อแก้ปัญหาการสเกลของ Git
⚡ สรุป 30 วิ
Cursor แนะนำบริการ Origin ที่จัดเก็บรีโพซิทอรีบน object storage ของ AWS S3 พร้อมดิสก์ NVMe เป็น reference copy ระบบนี้ช่วยลดเวลา sync…
Cursor ประกาศเปิดให้ใช้ Origin – บริการจัดเก็บรีโพซิทอรี Git แบบใหม่ที่สร้างบนโครงสร้าง object storage ของ AWS S3 – เป็นส่วนหนึ่งของแผนบริการแบบจ่ายเงินของ Cursor หลังจากหลายเหตุการณ์ระบบล่มของ GitHub ทำให้ผู้พัฒนาเริ่มมองหาวิธีจัดการ Git ในระดับมหากาพย์ ระบบนี้อ้างว่าแก้ไขข้อจำกัดด้านความสามารถในการสเกลของ Git ที่เคยเป็นปัญหาโดยใช้แนวคิด “write‑ahead log” และสำเนาอ้างอิงบนดิสก์ NVMe
Overview
การออกแบบของ Origin เริ่มต้นจากประสบการณ์ของวิศวกรระบบหลักของ Cursor, Vicent Martí, ที่เคยทำงานกับ GitHub เป็นเวลานับสิบปี เขาได้บรรยายว่าการจัดเก็บข้อมูลบน object storage** ทำให้สามารถอัปโหลดการเปลี่ยนแปลง (push) ไปยัง S3 ได้โดยตรงเป็นวัตถุที่ไม่แก้ไขได้ (immutable objects) พร้อมกับบันทึกไว้ใน log แบบ write‑ahead เพื่อรองรับความต่อเนื่องของระบบ
Origin ยังใช้ดิสก์ NVMe เป็น “reference copy” ของรีโพซิทอรี ซึ่งทำหน้าที่เป็นแคชเร็วสำหรับการดำเนินการที่ต้องเดินทางผ่านกราฟ DAG ของ Git การประสานข้อมูลระหว่างหลายสำเนาไม่จำเป็นต้องใช้ quorum เหมือนวิธีของ Spokes ที่ GitHub ใช้ ทำให้ระบบสามารถรับ push ได้เร็วเท่ากับความเร็วของดิสก์ท้องถิ่น
Git’s Scalability Challenges
Git ถูกออกแบบโดย Linus Torvalds ให้ทำงานเป็นที่เก็บข้อมูลตามคอนเทนต์ (content‑addressable) โดยอ็อบเจ็กต์ทั้งหมดถูกจัดเก็บและระบุด้วยค่าแฮช SHA‑1 การดึงข้อมูลต้องผ่านการเดินกราฟ DAG ทีละโหนด ซึ่งหมายความว่าเซิร์ฟเวอร์จะต้อง “walk the DAG” เพื่อรวบรวมอ็อบเจ็กต์ที่ร้องขอ
เมื่อรีโพซิทอรีจำนวนมาก (ประมาณ 400 ล้าน) ต้องให้บริการพร้อมกัน การทำเช่นนี้กลายเป็นภาระหนัก GitHub จึงพัฒนากลยุทธ์ Spokes – เก็บสำเนาอย่างน้อยสามชุดของทุกรีโพซิทอรีบนดิสก์ NVMe ที่ซิงโครไนซ์แน่นหนา แม้จะทำให้การเข้าถึงเร็วขึ้น แต่จำนวนสำเนาที่เพิ่มมากขึ้นทำให้เวลาในการซิงค์ยาวนานและระบบไม่สามารถรองรับ “eventual consistency” ได้ดี
นอกจากนี้ การใช้ agents ในกระบวนการ CI/CD ทำให้มีรีโพซิทอรีขนาดเล็กจำนวนมหาศาลที่ถูกสร้างและลบทิ้งบ่อยครั้ง ส่งผลให้ภาระงานของ Git เพิ่มขึ้นอย่างต่อเนื่องโดยไม่มีวิธีแก้ไขง่าย ๆ
Cursor’s Object‑Storage Architecture
Cursor เลือกใช้ object storage แทนระบบไฟล์หรือบล็อกแบบดั้งเดิม เพราะแต่ละชิ้นข้อมูลใน S3 จะได้รับตัวระบุเฉพาะที่ไม่ซ้ำกันและถูกจัดเก็บอยู่ใน namespace เดียวโดยไม่มีโครงสร้างไดเรกทอรี การทำเช่นนี้ช่วยให้การขยายระบบเป็นไปได้อย่างไม่มีขีดจำกัดและลดค่าใช้จ่ายในการสำรองข้อมูล
ขั้นตอนหลักของ Origin มีดังนี้
- Push: ข้อมูลที่เปลี่ยนแปลงจะถูกเขียนเป็นวัตถุ immutable ลงใน S3 เป็น write‑ahead log (WAL) พร้อมบันทึกสำเนาอ้างอิงบนดิสก์ NVMe
- Sync: เมื่อ WAL และ reference copy เสร็จสิ้น ระบบจะอนุญาตให้ replica อื่น ๆ ดึงการเปลี่ยนแปลงจาก S3 ตามความต้องการโดยไม่ต้องทำการเดินกราฟ DAG ผ่านเครือข่าย
แนวทางนี้ทำให้ขั้นตอน “synchronize the reference transaction with a single local repository instead of a quorum of replicas” เป็นไปได้เร็วเท่ากับอัตราการเขียนของดิสก์ NVMe ของเครื่องหลัก
Technical Advantages & Trade‑offs
การใช้ S3 ทำให้ Origin สามารถรับปริมาณ push ได้โดยไม่จำกัดขนาดและจำนวน เนื่องจาก S3 มีระบบทำซ้ำภายในที่มั่นคงและค่าใช้จ่ายต่อ GB ต่ำ อย่างไรก็ตาม การเดินกราฟ DAG ของ Git ยังคงต้องทำบนดิสก์ท้องถิ่น ซึ่งหมายความว่าในบางกรณีการดึงข้อมูลจากแหล่งเก็บระยะไกลยังคงจำเป็นเมื่อต้องสร้าง packfile ขนาดใหญ่
ข้อดีสำคัญของโมเดลนี้ประกอบด้วย
- ลดเวลาในการซิงโครไนซ์ เนื่องจากต้องอัพเดทเพียง reference copy เดียว
- ความยืดหยุ่นสูง – รีโพซิทอรีสามารถ “อยู่อย่างใดก็ได้” (anywhere) เพราะแหล่งความจริงคือ WAL บน S3
- รองรับการเพิ่มจำนวนสำเนาโดยไม่มีผลกระทบต่อ latency ของการ push
แต่ข้อเสียที่ยังคงมี ได้แก่ การพึ่งพาการเข้าถึง SSD ท้องถิ่นสำหรับ DAG traversal ซึ่งอาจเป็นคอขวดเมื่อทำงานกับรีโพซิทอรีขนาดใหญ่มาก รวมถึงความเสี่ยงด้านความปลอดภัยของข้อมูลในคลาวด์ที่ต้องจัดการด้วยนโยบายเข้ารหัสและควบคุมสิทธิ์อย่างเคร่งครัด
Potential Impact on the Market
หาก Origin สามารถทำงานได้โดยไม่มีเหตุการณ์ล่ม ระบบ Git‑as‑a‑service จะมีทางเลือกใหม่ที่ไม่จำเป็นต้องอาศัยโครงสร้าง “Spokes” ของ GitHub ผู้พัฒนาและองค์กรต่าง ๆ อาจเริ่มประเมินการย้ายไปใช้ object storage เป็นพื้นฐานของระบบควบคุมเวอร์ชัน
นอกจากนี้ การเปิดให้ใช้บริการในรูปแบบ beta ภายใต้แผนจ่ายเงินของ Cursor แสดงว่าเทคโนโลยีนี้กำลังเข้าสู่ขั้นตอนทดสอบเชิงพาณิชย์ หากผู้ใช้ไม่พบปัญหาขัดข้องอย่างต่อเนื่อง ความนิยมของโซลูชั่นแบบ “WAL‑on‑S3 + local reference” อาจกระตุ้นให้ผู้ให้บริการคลาวด์อื่น ๆ พิจารณานำเสนอสินค้าที่คล้ายกัน หรือทำให้ GitHub ต้องปรับปรุงสถาปัตยกรรมเดิมเพื่อรักษาตำแหน่งในตลาด
Summary
Cursor ได้ออกแบบ Origin โดยใช้ object storage ของ AWS S3 ร่วมกับดิสก์ NVMe เพื่อแก้ไขข้อจำกัดการสเกลของ Git ที่เคยเป็นปัญหาในระบบ “Spokes” ของ GitHub การเปลี่ยนแปลงนี้อาจสร้างแนวทางใหม่สำหรับบริการจัดการรีโพซิทอรีระดับมหากาพย์และส่งผลต่อกลยุทธ์ของผู้ให้บริการคลาวด์และเครื่องมือ DevOps ในอนาคต.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- How Cursor beat Git's scalability shortcomings
- ผู้เขียน
- Unknown
- แหล่ง
- The Register
- วันที่เผยแพร่
- 23 สิงหาคม 2569 เวลา 20:45



