ยานเดกซ์เปิดตัวซอร์สโค้ดของ DBMS «YDB»

เมื่อเร็วๆ นี้ มีการประกาศว่าYandex ได้เผยแพร่ซอร์สโค้ดของระบบจัดการฐานข้อมูล (DBMS) ที่ชื่อว่า "YDB"ซึ่งรองรับภาษา SQL และธุรกรรม ACID

ระบบจัดการฐานข้อมูล (DBMS) นี้ถูกสร้างขึ้นใหม่ทั้งหมดและพัฒนาขึ้นโดยมีเป้าหมายหลักคือการสร้างความทนทานต่อความผิดพลาดการกู้คืนอัตโนมัติจากความล้มเหลว และความสามารถในการขยายขนาด เป็นที่น่าสังเกตว่า Yandex ได้เปิดใช้งานคลัสเตอร์ YDB ที่ใช้งานได้จริง ซึ่งประกอบด้วยโหนดมากกว่า 10 โหนด จัดเก็บข้อมูลหลายร้อยเพตาไบต์ และจัดการธุรกรรมแบบกระจายหลายล้านรายการต่อวินาที

ความแปลกใหม่หลักของYDB

หนึ่งในคุณสมบัติหลักของ YDB คือการใช้โมเดลข้อมูลเชิงสัมพันธ์ที่มีตาราง YQL ( YDB Query Language) ใช้ในการสอบถามและกำหนดโครงสร้างข้อมูล ซึ่งเป็นภาษา SQL ที่ปรับให้เหมาะสมกับการทำงานกับฐานข้อมูลขนาดใหญ่และกระจายตัวเมื่อสร้างโครงสร้างการจัดเก็บข้อมูล จะรองรับการจัดกลุ่มตารางแบบต้นไม้ คล้ายกับไดเร็กทอรีในระบบไฟล์ นอกจากนี้ยังมี API สำหรับการทำงานกับข้อมูลในรูปแบบ JSON ด้วย

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

รองรับการเข้าถึงข้อมูลผ่านการสืบค้นแบบสแกน ซึ่งออกแบบมาเพื่อทำการสืบค้นเชิงวิเคราะห์แบบเฉพาะกิจบนฐานข้อมูล โดยจะดำเนินการในโหมดอ่านอย่างเดียวและส่งคืนโฟลว์ grpc

นอกจากนี้ ยังโดดเด่นในเรื่องการจัดเก็บข้อมูลโดยตรงบนอุปกรณ์บล็อกโดยใช้ส่วนประกอบ PDisk และเลเยอร์ VDisk ดั้งเดิม นอกเหนือจาก VDisk แล้ว ยังมี DSProxy ที่ทำงานเพื่อวิเคราะห์ความพร้อมใช้งานและประสิทธิภาพของดิสก์ เพื่อตัดดิสก์ที่มีปัญหาออกหากตรวจพบปัญหา

คุณสมบัติเด่นอื่นๆ ได้แก่:

  • สถาปัตยกรรมที่ยืดหยุ่นซึ่งช่วยให้คุณสร้างบริการต่างๆ บน YDB ได้ จนถึงอุปกรณ์บล็อกเสมือนและคิวถาวร ความเหมาะสมสำหรับปริมาณงานประเภทต่างๆ: OLTP และ OLAP (การสืบค้นเชิงวิเคราะห์)
  • รองรับการกำหนดค่าผู้ใช้หลายคน (หลายผู้เช่า) และการกำหนดค่าแบบไร้เซิร์ฟเวอร์
  • ความสามารถในการตรวจสอบลูกค้า ผู้ใช้สามารถสร้างคลัสเตอร์เสมือนและฐานข้อมูลของตนเองบนโครงสร้างพื้นฐานที่ใช้ร่วมกันร่วมกัน โดยพิจารณาถึงการใช้ทรัพยากรในแง่ของจำนวนคำขอและขนาดข้อมูล หรือโดยการเช่า/จองทรัพยากรการประมวลผลและพื้นที่จัดเก็บบางอย่าง
  • ความเป็นไปได้ในการปรับอายุการใช้งานของระเบียนสำหรับการลบข้อมูลที่ล้าสมัยโดยอัตโนมัติ
  • การโต้ตอบกับ DBMS และการส่งคำขอทำได้โดยใช้อินเทอร์เฟซบรรทัดคำสั่ง เว็บอินเทอร์เฟซแบบรวม หรือ YDB SDK ซึ่งมีไลบรารีสำหรับ C++, C# (.NET), Go, Java, Node.js, PHP และ Python
  • กู้คืนจากความล้มเหลวโดยอัตโนมัติโดยมีความล่าช้าน้อยที่สุดในแอปพลิเคชัน และรักษาความซ้ำซ้อนที่ระบุโดยอัตโนมัติเมื่อจัดเก็บข้อมูล
  • การสร้างดัชนีโดยอัตโนมัติบนคีย์หลักและความสามารถในการกำหนดดัชนีรองเพื่อปรับปรุงประสิทธิภาพของการเข้าถึงคอลัมน์โดยอำเภอใจ
  • ความสามารถในการปรับขนาดในแนวนอน เมื่อโหลดและขนาดของข้อมูลที่จัดเก็บเพิ่มขึ้น คลัสเตอร์สามารถขยายได้โดยการเชื่อมต่อโหนดใหม่ ระดับการประมวลผลและพื้นที่จัดเก็บแยกจากกัน ช่วยให้คุณปรับขนาดการประมวลผลและพื้นที่จัดเก็บแยกกันได้ DBMS เองตรวจสอบการกระจายข้อมูลและโหลดอย่างสม่ำเสมอ โดยคำนึงถึงทรัพยากรฮาร์ดแวร์ที่มีอยู่ เป็นไปได้ที่จะใช้การกำหนดค่าแบบกระจายตามภูมิศาสตร์ซึ่งครอบคลุมศูนย์ข้อมูลหลายแห่งในส่วนต่างๆ ของโลก
  • รองรับโมเดลความสอดคล้องที่แข็งแกร่งและธุรกรรม ACID เมื่อประมวลผลการสืบค้นที่ครอบคลุมโหนดและตารางหลายรายการ ในการปรับปรุงประสิทธิภาพ คุณสามารถเลือกปิดใช้งานการตรวจสอบความสอดคล้องได้
  • การจำลองข้อมูลอัตโนมัติ การแบ่งพาร์ติชั่นอัตโนมัติ (การแบ่งพาร์ติชั่น การแบ่งกลุ่ม) เมื่อขนาดหรือโหลดเพิ่มขึ้น และการโหลดอัตโนมัติและความสมดุลของข้อมูลระหว่างโหนด

สุดท้ายนี้ควรทราบว่า YDB ถูกนำไปใช้ในโครงการของ Yandex โดยโค้ดเขียนด้วยภาษา C/C++ และเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 คุณสามารถดูซอร์สโค้ดและรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google