Yandex เปิดรหัสของ DBMS YDB แบบกระจายที่รองรับ SQL

ยานเดกซ์ได้เผยแพร่ข้อความต้นฉบับของ YDB DBMS แบบกระจาย ซึ่งใช้การสนับสนุนสำหรับภาษา SQL และธุรกรรม ACID DBMS ถูกสร้างขึ้นตั้งแต่เริ่มต้นและเริ่มพัฒนาโดยมีเป้าหมายเพื่อให้มั่นใจถึงความทนทานต่อข้อผิดพลาด การกู้คืนอัตโนมัติในกรณีที่เกิดข้อผิดพลาด และความสามารถในการปรับขนาด ยานเดกซ์เปิดตัวคลัสเตอร์ YDB ที่ใช้งานได้ ซึ่งรวมถึงโหนดมากกว่า 10 โหนด จัดเก็บข้อมูลหลายร้อยเพตะไบต์และให้บริการธุรกรรมแบบกระจายหลายล้านรายการต่อวินาที YDB ใช้ในโครงการ Yandex เช่น Market, Cloud, Smart Home, Alice, Metrika และ Auto.ru รหัสนี้เขียนด้วยภาษา C/C++ และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 เพื่อทำความคุ้นเคยและเปิดใช้งานอย่างรวดเร็ว คุณสามารถใช้คอนเทนเนอร์ Docker สำเร็จรูปได้

คุณสมบัติโครงการ:

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

ที่มา: opennet.ru

เพิ่มความคิดเห็น