rqlite ซึ่งเป็น DBMS เชิงสัมพันธ์แบบกระจายและน้ำหนักเบาที่ยอดเยี่ยม

Si คุณกำลังมองหา DBMS แบบกระจาย ที่ใช้ SQLite เป็นเอ็นจิ้นการจัดเก็บข้อมูล ให้ฉันบอกคุณว่า rqlite คือสิ่งที่ใช่สำหรับคุณเนื่องจากช่วยให้จัดระเบียบงานของคลัสเตอร์จากที่เก็บข้อมูลที่ซิงโครไนซ์ระหว่างกันได้

จากคุณสมบัติ rqlite เน้นความง่ายในการติดตั้ง การใช้งาน และการบำรุงรักษา ของการจัดเก็บแบบกระจาย ทนต่อความผิดพลาดซึ่งค่อนข้างคล้ายกับ etcd และกงสุล แต่ใช้โมเดลข้อมูลเชิงสัมพันธ์แทนรูปแบบคีย์/ค่า

เกี่ยวกับ rqlite

อัลกอริธึมฉันทามติของ Raft ใช้เพื่อซิงค์โหนดทั้งหมด Rqlite ใช้ไลบรารี่ SQLite ดั้งเดิมและไดรเวอร์ go-sqlite3นอกจากจะรันเลเยอร์ที่ประมวลผลคำขอของไคลเอ็นต์แล้ว ยังจำลองตัวเองในโหนดอื่น ๆ และตรวจสอบฉันทามติถึงทางเลือกของโหนดหลัก

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

จุดสนใจหลักอยู่ที่ความทนทานต่อข้อผิดพลาด ดังนั้น DBMS มาตราส่วนเฉพาะในการดำเนินการอ่าน และการดำเนินการเขียนเป็นคอขวด เป็นไปได้ที่จะเรียกใช้คลัสเตอร์ rqlite จากโหนดเดียว และสามารถใช้โซลูชันดังกล่าวเพื่อให้เข้าถึง SQLite ผ่าน HTTP ได้โดยไม่ต้องให้ความทนทานต่อข้อผิดพลาด

ข้อมูล SQLite ในแต่ละโหนดจะไม่ถูกเก็บไว้ในไฟล์ แต่อยู่ในหน่วยความจำ. ที่ระดับเลเยอร์ด้วยการใช้โปรโตคอล Raft บันทึกจะถูกเก็บไว้ของคำสั่ง SQLite ทั้งหมดที่นำไปสู่การเปลี่ยนแปลงในฐานข้อมูล

เรกคอร์ดนี้ใช้สำหรับการจำลองแบบ (การจำลองแบบที่ระดับการเล่นซ้ำของแบบสอบถามไปยังโหนดอื่น) เมื่อเริ่มต้นโหนดใหม่ หรือเพื่อกู้คืนจากการสูญเสียการเชื่อมต่อ

เพื่อลดขนาดของเรคคอร์ด ใช้บรรจุภัณฑ์อัตโนมัติ ซึ่งเริ่มต้นหลังจากจำนวนการเปลี่ยนแปลงที่ระบุและนำไปสู่การยืนยันสแน็ปช็อต ซึ่งเรกคอร์ดใหม่เริ่มต้นขึ้น (สถานะของฐานข้อมูลในหน่วยความจำเหมือนกับสแน็ปช็อต + บันทึกการเปลี่ยนแปลงสะสม)

จากคุณสมบัติ rqlite:

  • ปรับใช้คลัสเตอร์ได้ง่ายโดยไม่จำเป็นต้องติดตั้ง SQLite แยกต่างหาก
  • ความสามารถในการรับที่เก็บข้อมูล SQL ที่จำลองแบบได้อย่างรวดเร็ว
  • พร้อมใช้งานในโครงการการผลิต
  • ความพร้อมใช้งานของ HTTP (S) API ซึ่งอนุญาตให้อัปเดตข้อมูลในโหมดแบตช์และกำหนดโหนดผู้นำของคลัสเตอร์ นอกจากนี้ยังมีอินเทอร์เฟซบรรทัดคำสั่งและไลบรารีไคลเอ็นต์สำหรับภาษาการเขียนโปรแกรมต่างๆ
  • การมีอยู่ของบริการเพื่อกำหนดโหนดอื่นๆ ที่ช่วยให้คุณสร้างคลัสเตอร์แบบไดนามิกได้
  • รองรับการเข้ารหัสการแลกเปลี่ยนข้อมูลระหว่างโหนด
  • ความสามารถในการปรับแต่งระดับการตรวจสอบความเกี่ยวข้องและความสอดคล้องของข้อมูลเมื่ออ่าน
  • ความสามารถทางเลือกในการเชื่อมต่อโหนดแบบอ่านอย่างเดียวที่ไม่มีส่วนร่วมในการกำหนดฉันทามติ และใช้เพื่อเพิ่มความสามารถในการปรับขนาดของคลัสเตอร์สำหรับการดำเนินการอ่าน
  • รองรับรูปแบบธุรกรรมดั้งเดิมตามคำสั่งรวมในคำขอเดียว (ไม่รองรับธุรกรรมตาม BEGIN, COMMIT, ROLLBACK, SAVEPOINT และ RELEASE)

เกี่ยวกับ rqlite 6.0

รุ่นใหม่ แนะนำการเปลี่ยนแปลงทางสถาปัตยกรรมที่สำคัญซึ่งมุ่งปรับปรุงความน่าเชื่อถือของคลัสเตอร์ โดยการปรับปรุงกระบวนการส่งคำขออ่านและเขียนไปยังโหนดคลัสเตอร์ที่ถูกต้อง

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

การเปลี่ยนแปลงดังกล่าวยังลบองค์ประกอบที่แยกจากกันสำหรับการซิงค์ข้อมูลเมตาและลบการจัดการสถานะและข้อมูลเมตาของ Raft

โหนดรองจะส่งคำขอไปยังโหนดลูกค้าเป้าหมายเมื่อจำเป็นเท่านั้น เมื่อจำเป็นต้องค้นหาที่อยู่ของโหนดลูกค้าเป้าหมาย API ให้ความสามารถในการรับข้อมูลเกี่ยวกับสถานะของโหนดอื่นในคลัสเตอร์ เพิ่มคำสั่ง Sysdump ใน CLI

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา