กูเกิลกลับมาหา SQL ด้วยระบบฐานข้อมูล F1

by lew
30 August 2013 - 03:35

กระแสระบบฐานข้อมูล NoSQL ทำให้หลายบริษัทพยายามปรับฐานข้อมูลไปมากในช่วงไม่กี่ปีที่ผ่านมา กูเกิลเองในระบบ Google App Engine ก็ใช้ GQL ที่แม้จะคล้าย SQL แต่ก็ไม่สามารถ join ข้ามตารางได้ แต่ในระบบที่เกี่ยวกับการเงินและมีรายการตัดเงินจำนวนมากอย่าง AdWords ก็ทำให้กูเกิลต้องกลับมาพัฒนาระบบ SQL

ระบบ F1 มีเงื่อนไขการออกแบบว่าต้องกระจายโหลดได้แบบเดียวกับ NoSQL ขณะเดียวกันก็ต้องรองรับ ACID เพื่อจะรับประกันได้ว่าการตัดยอดเงินจะแม่นยำ และเนื่องจากผู้ใช้เป็นผู้ใช้ทางฝั่งธุรกิจจึงจำเป็นต้องรองรับ SQL เต็มรูปแบบ

F1 กระจายข้อมูลข้ามศูนย์ข้อมูลได้ โดยตัวกระจายโหลดจะเลือกให้ว่าจะเชื่อมต่อเข้าศูนย์ข้อมูลใด ขณะที่แต่ละศูนย์จะมีเซิร์ฟเวอร์หลายตัว แบ่งงานกันทำ ระบบการเก็บข้อมูลนั้นเก็บผ่านระบบเก็บข้อมูล Spanner ที่รับประกันเรื่องของการสำรองข้อมูล และการกระจายข้อมูล

จุดแปลกอย่างหนึ่งของ F1 คือการเก็บข้อมูลภายในนั้นเป็นเชิงโครสร้าง (hierarchical) แทนที่จะเชื่อมโยงความสัมพันธ์ระหว่างตารางด้วยหมายเลขประจำแถวของตารางต่างๆ กระบวนการ join ในตารางที่อยู่ในโครงสร้างเดียวกันจึงมีประสิทธิภาพที่ดีกว่ามาก

กูเกิลเคยพูดถึง F1 มาตั้งแต่ปีที่แล้ว แต่ในปีนี้เพิ่งตีพิมพ์รายงานการออกแบบเพิ่มเติมเพื่อนำเสนอที่งาน Very Large Database (VLDB) 2013

ที่มา - The Register, F1: A Distributed SQL Database That Scales (PDF)

Blognone Jobs Premium