ใน SQLite พวกเขาทำงานบนแบ็กเอนด์ HCTree พร้อมรองรับการเขียนแบบขนาน

SQLite

เป็นระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ที่สอดคล้องกับ ACID ซึ่งมีอยู่ในไลบรารีขนาดเล็กที่เขียนด้วย C

ผู้พัฒนาโครงการ SQLite ได้เริ่มทดสอบแบ็กเอนด์ HCtree แบบทดลองแล้ว ซึ่งรองรับการล็อกระดับแถวและให้ความขนานในระดับสูงในการประมวลผลคิวรี

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

ลา โครงสร้าง b-tree เดิมใช้ ใน SQLite เพื่อเก็บข้อมูล ไม่ได้ออกแบบมาสำหรับการโหลดประเภทนี้ซึ่งจำกัด SQLite ให้เขียนไปยังสตรีมเท่านั้น ในการทดลอง นักพัฒนาเริ่มพัฒนาโซลูชันทางเลือกที่ใช้โครงสร้าง HCtree สำหรับการจัดเก็บ ซึ่งเหมาะสมกว่าสำหรับการดำเนินการเขียนแบบขนาน

โครงการ HC-tree (hctree) เป็นความพยายามในการพัฒนาแบ็กเอนด์ฐานข้อมูลใหม่ที่ปรับปรุงบน SQLite ปกติดังนี้:

การทำงานพร้อมกันที่ดีขึ้น: การใช้ส่วนขยายเริ่มต้นพร้อมกันจะเปลี่ยนแปลงสิ่งนี้เพื่อให้สามารถดำเนินการพร้อมกันได้โดยใช้การล็อกในแง่ดีที่ระดับเพจ สิ่งนี้ช่วยปรับปรุงการทำงานพร้อมกันได้บ้าง แต่การล็อกระดับเพจสามารถตรวจพบความขัดแย้งระหว่างธุรกรรมที่ไม่ขึ้นกับตรรกะ และการดำเนินการ COMMIT ยังจำเป็นต้องทำให้เป็นอนุกรม

การสนับสนุนการจำลองแบบ: Stock SQLite รองรับ ส่วนขยายเซสชันซึ่งช่วยให้เนื้อหาของธุรกรรมที่ตกลงได้รับการทำให้เป็นอนุกรมสำหรับการส่งและแอปพลิเคชันไปยังฐานข้อมูลที่สอง Hctree รวมสิ่งนี้เข้ากับแบ็กเอนด์ของฐานข้อมูลและเพิ่มการสนับสนุนสำหรับการใช้ธุรกรรมดังกล่าวกับฐานข้อมูลผู้ตามในการกำหนดค่าผู้นำและผู้ตาม ในกรณีนี้ ธุรกรรมที่ได้รับจากฐานข้อมูลชั้นนำสามารถนำไปใช้ได้เร็วกว่าและมีการทำงานพร้อมกันมากกว่าที่เคยใช้กับฐานข้อมูลชั้นนำ เนื่องจากไม่มี การตรวจสอบธุรกรรม

การขจัดข้อจำกัดด้านขนาดฐานข้อมูล: Stock SQLite ใช้หมายเลขหน้า 32 บิต การใช้ขนาดหน้าเริ่มต้นที่ 4 KiB ทำให้มีขนาดฐานข้อมูลสูงสุด 2^44 ไบต์หรือ 16 TiB

เพื่อจัดการการทำงานหลายอย่างในเวลาเดียวกัน บันทึก HCtree ใช้กลไกการแยกธุรกรรม ซึ่งใช้การล็อกระดับเพจ คล้ายกับ MVCC (การควบคุมการบรรจุหลายเวอร์ชัน) แต่ใช้การควบคุมธุรกรรมตามช่วงคีย์และช่วงคีย์แทนชุดเพจ

การดำเนินการอ่านและเขียนจะดำเนินการโดยสัมพันธ์กับสแนปชอตของฐานข้อมูล การเปลี่ยนแปลงดังกล่าวจะมองเห็นได้ในฐานข้อมูลหลักหลังจากการทำธุรกรรมเสร็จสิ้นเท่านั้น

ลูกค้าสามารถใช้การดำเนินการสามอย่างเพื่อเปิดธุรกรรม:

  • «เริ่ม«: การทำธุรกรรมไม่คำนึงถึงการเข้าถึงข้อมูลของลูกค้ารายอื่น หากมีการดำเนินการเขียนภายในธุรกรรม ธุรกรรมนั้นจะสามารถยอมรับได้ก็ต่อเมื่อไม่มีการดำเนินการเขียนอื่นๆ ไปยังฐานข้อมูลในช่วงเวลาที่ดำเนินการ
    «เริ่มต้นพร้อมกัน«: การทำธุรกรรมรวบรวมข้อมูลเกี่ยวกับการเข้าถึงของลูกค้ารายอื่น หากดำเนินการเขียนภายในธุรกรรม ธุรกรรมนั้นสามารถคอมมิตได้หากทรานแซกชันอื่นถูกคอมมิตกับฐานข้อมูลตั้งแต่สร้างสแน็ปช็อต
    «เริ่มต้นพิเศษ«: หลังจากเปิดธุรกรรมแล้ว ให้บล็อกการดำเนินการของธุรกรรมอื่นๆ จนกว่าจะเสร็จสิ้น

HCtree รองรับการจำลองแบบมาสเตอร์-สเลฟ ซึ่งช่วยให้คุณถ่ายโอนธุรกรรมไปยังฐานข้อมูลอื่นและเก็บฐานข้อมูลรองให้ซิงค์กับฐานข้อมูลหลัก

HCtree ยังลบขีดจำกัดขนาดฐานข้อมูล: แทนที่จะใช้ตัวระบุหน้าข้อมูล 32 บิต HCtree ใช้ตัวระบุ 48 บิต ซึ่งเพิ่มขนาดฐานข้อมูลสูงสุดจาก 16 เทบิไบต์เป็น 1 exbibyte (ล้านเทบิไบต์)

ประสิทธิภาพของ SQLite พร้อมแบ็กเอนด์ HCtree นั้นคาดว่าจะดีเท่ากับแบ็คเอนด์แบบเธรดเดี่ยวแบบคลาสสิกเป็นอย่างน้อย ไคลเอ็นต์ SQLite ที่รองรับ HCtree จะสามารถเข้าถึงทั้งฐานข้อมูล HC-tree และฐานข้อมูล SQLite เดิมได้

Fuente: https://sqlite.org/


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

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

*

*

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