TigerBeetle ฐานข้อมูลทางการเงินเฉพาะทางที่สร้างขึ้นใหม่ด้วยภาษาโปรแกรม Zig ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนนักพัฒนาหลังจากการอ้างสิทธิ์เกี่ยวกับประสิทธิภาพและปรัชญาการออกแบบที่ปฏิวัติวงการ แม้ว่าฐานข้อมูลนี้จะสัญญาว่าจะปรับปรุงประสิทธิภาพได้ถึง 1000 เท่าเมื่อเทียบกับฐานข้อมูล SQL แบบดั้งเดิมสำหรับการทำธุรกรรมทางการเงิน แต่สมาชิกในชุมชนกำลังตั้งคำถามสำคัญเกี่ยวกับการประยุกต์ใช้ในโลกแห่งความเป็นจริงและแนวทางการตลาด
ข้อมูลจำเพาะหลักของ TigerBeetle :
- ภาษาโปรแกรมมิ่ง: Zig 100%
- การพึ่งพาภายนอก: ไม่มีการพึ่งพาภายนอกเลย
- สถาปัตยกรรม: เธรดเดียว แต่กระจายแบบ distributed โดยค่าเริ่มต้น
- โมเดลข้อมูล: ระบบบัญชีคู่ (เดบิต/เครดิต)
- การจัดการหน่วยความจำ: การจัดสรรแบบคงที่เท่านั้น
- การทดสอบ: Deterministic Simulation Testing (DST)
- การอ้างสิทธิ์ด้านประสิทธิภาพ: เร็วกว่า SQL ถึง 1000 เท่าสำหรับงานทางการเงินที่มีการแข่งขันสูง
การอ้างสิทธิ์ด้านประสิทธิภาพถูกตั้งคำถาม
ความขัดแย้งหลักมุ่งเน้นไปที่การยืนยันของ TigerBeetle ว่าฐานข้อมูล SQL แบบดั้งเดิมมีข้อจำกัดพื้นฐานที่ 100-1,000 ธุรกรรมต่อวินาที (TPS) เนื่องจากปัญหาการแย่งชิงทรัพยากร สมาชิกในชุมชนได้โต้แย้งการบรรยายลักษณะนี้ โดยชี้ให้เห็นว่าอินสแตนซ์ MySQL และ PostgreSQL ที่ปรับแต่งอย่างดีสามารถจัดการกับปริมาณงานที่สูงกว่ามากในสภาพแวดล้อมการผลิต นักพัฒนาคนหนึ่งได้แบ่งปันประสบการณ์กับอินสแตนซ์ MySQL ที่จัดการ 80-90K คิวรีต่อวินาทีโดยไม่มีปัญหา ซึ่งบ่งชี้ว่าการเปรียบเทียบประสิทธิภาพอาจไม่สะท้อนการกำหนดค่าฐานข้อมูลที่เหมาะสมที่สุด
ทีม TigerBeetle ได้ชี้แจงว่าการอ้างสิทธิ์ด้านประสิทธิภาพของพวกเขาใช้โดยเฉพาะกับสถานการณ์การแย่งชิงสูงที่ธุรกรรมจำนวนมากแข่งขันกันเพื่อทรัพยากรเดียวกัน เช่น การโอนเงินหลายครั้งที่ส่งผลกระทบต่อบัญชีเดียว ความแตกต่างนี้มีความสำคัญเพราะปริมาณงานฐานข้อมูลในโลกแห่งความเป็นจริงส่วนใหญ่ไม่ได้ประสบกับรูปแบบการแย่งชิงที่รุนแรงเช่นนี้
บริบทการเปรียบเทียบประสิทธิภาพ:
- TigerBeetle อ้างว่า: ฐานข้อมูล SQL มีข้อจำกัดที่ 100-1,000 TPS ภายใต้สภาวะการแข่งขัน
- ตัวอย่างโต้แย้งจากชุมชน: MySQL สามารถจัดการ 80-90K QPS ในการใช้งานจริง
- ความแตกต่างหลัก: TigerBeetle ได้รับการปรับแต่งสำหรับสถานการณ์การแข่งขันสูง (ธุรกรรมจำนวนมากในบัญชีเดียวกัน)
- ฐานข้อมูลแบบดั้งเดิม: ดีกว่าสำหรับงานทั่วไปและปริมาณงานที่มีการแข่งขันต่ำ
การขาดระบบการยืนยันตัวตนทำให้เกิดความกังวลในการปรับใช้
อุปสรรคทางปฏิบัติที่สำคัญได้เกิดขึ้นเกี่ยวกับการขาดกลไกการยืนยันตัวตนในตัวของ TigerBeetle นักพัฒนาที่พยายามรวมฐานข้อมูลเข้ากับแพลตฟอร์ม serverless สมัยใหม่อย่าง Cloudflare Workers พบว่าตนเองถูกบล็อกด้วยข้อจำกัดนี้ ฐานข้อมูลต้องการการควบคุมการเข้าถึงแบบ IP ที่ระดับเซิร์ฟเวอร์ ซึ่งไม่ทำงานได้ดีกับสถาปัตยกรรม serverless ที่ขาดที่อยู่ IP คงที่
ช่องว่างด้านการยืนยันตัวตนนี้ได้นำไปสู่คำถามเกี่ยวกับความพร้อมของฐานข้อมูลสำหรับการปรับใช้ในการผลิต โดยเฉพาะในสภาพแวดล้อม cloud-native ที่ความปลอดภัยและการควบคุมการเข้าถึงเป็นข้อกังวลสำคัญ
ข้อจำกัดที่รายงานโดยชุมชน:
- ไม่มีระบบการยืนยันตัวตนในตัว
- ไม่รองรับ SQL
- การประมวลผลแบบซิงเกิลคอร์ (ไม่สามารถขยายแนวนอนต่อโหนด)
- ความเข้ากันได้กับแพลตฟอร์ม serverless จำกัด
- กรณีการใช้งานเฉพาะทาง (เฉพาะธุรกรรมทางการเงินเท่านั้น)
- ไม่รองรับ runtime ของ Cloudflare Workers
ปรัชญาการออกแบบเฉพาะทางแบ่งความคิดเห็น
แนวทางของ TigerBeetle ในการสร้างฐานข้อมูลเฉพาะสำหรับการทำบัญชีแบบรายการคู่ได้สร้างปฏิกิริยาที่หลากหลาย ผู้สนับสนุนชื่นชมการมุ่งเน้นไปที่พื้นฐานทางการเงินอย่างเดบิตและเครดิต โดยโต้แย้งว่าความเชี่ยวชาญเฉพาะทางนี้ช่วยให้มีประสิทธิภาพที่เหนือกว่าสำหรับปริมาณงานด้านบัญชี นักวิจารณ์ตั้งคำถามว่าประโยชน์ดังกล่าวสมควรกับการละทิ้งความยืดหยุ่นและระบบนิเวศของฐานข้อมูล SQL หรือไม่
ปรัชญาการไม่พึ่งพาสิ่งอื่นและการใช้การทดสอบจำลองแบบกำหนดได้ของฐานข้อมูลได้รับคำชมจากนักพัฒนาที่ให้ความสำคัญกับความน่าเชื่อถือและความสามารถในการคาดการณ์ อย่างไรก็ตาม สมาชิกในชุมชนบางคนสงสัยว่าแนวทางนี้สร้างข้อจำกัดที่ไม่จำเป็นหรือไม่ โดยเฉพาะการออกแบบแบบเธรดเดียวที่ป้องกันการขยายแนวนอนภายในโหนดเดียว
ความกังวลเรื่องอคติจากการลงทุน
การอภิปรายในชุมชนยังได้เน้นให้เห็นว่าบทความต้นฉบับที่ชื่นชม TigerBeetle เขียนโดยบริษัทลงทุนที่ได้ให้เงินทุนแก่บริษัท การเปิดเผยนี้ได้นำไปสู่การเรียกร้องให้มีการประเมินเทคโนโลยีอย่างสมดุลมากขึ้นในด้านข้อดีและข้อจำกัด แยกออกจากเนื้อหาส่งเสริมการขาย
การถกเถียงสะท้อนความตึงเครียดที่กว้างขึ้นในชุมชนฐานข้อมูลระหว่างโซลูชันเฉพาะทางที่เป็นเลิศในกรณีการใช้งานที่แคบและระบบอเนกประสงค์ที่เสนอความยืดหยุ่นในปริมาณงานที่หลากหลาย แม้ว่านวัตกรรมทางเทคนิคของ TigerBeetle ในด้านต่างๆ เช่น การซิงโครไนซ์นาฬิกาที่ทนต่อความผิดพลาดและการจัดการข้อผิดพลาดของที่เก็บข้อมูลจะน่าประทับใจ แต่ความท้าทายในทางปฏิบัติของการนำมาใช้ยังคงเป็นอุปสรรคสำคัญสำหรับผู้ใช้ที่มีศักยภาพจำนวนมาก
อ้างอิง: Why TigerBeetle is the most interesting database in the world