Dragonfly ระบบแคชข้อมูล RAM

แมลงปอ

Dragonfly เป็นที่เก็บข้อมูลในหน่วยความจำที่สร้างขึ้นสำหรับปริมาณงานแอปพลิเคชันสมัยใหม่

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

แมลงปอ รองรับโปรโตคอล Memcached และ Redis ทำให้คุณสามารถใช้ไลบรารีไคลเอนต์ที่มีอยู่และโครงการพอร์ตโดยใช้ Memcached และ Redis ไปยัง Dragonfly โดยไม่ต้องแก้ไขรหัสของคุณใหม่

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

ในขณะเดียวกันแมลงปอ สามารถกำหนดค่าเพื่อใช้เป็นที่เก็บข้อมูลสำรอง ซึ่งรับข้อมูลจากเซิร์ฟเวอร์หลักตาม Dragonfly และ Redis API การจัดการการจำลองเข้ากันได้กับ Redis และขึ้นอยู่กับการใช้คำสั่ง ROLE และ REPLICAOF (SLAVEOF)

เกี่ยวกับ แมลงปอ

ประสิทธิภาพสูงเกิดขึ้นได้ด้วยสถาปัตยกรรมแบบมัลติเธรด โดยไม่ต้องแชร์ทรัพยากร (shared-nothing) ซึ่งหมายความว่าคอนโทรลเลอร์แยกต่างหากจะแนบกับแต่ละเธรดด้วยข้อมูลของตัวเอง ซึ่งทำงานโดยไม่ต้องใช้ mutexes หรือ spin-locks

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

เมื่อเปรียบเทียบกับ Redis แล้ว Dragonfly มีประสิทธิภาพเพิ่มขึ้น 25 เท่า (3,8 ล้านคำขอต่อวินาที) ภายใต้ปริมาณงานทั่วไปในสภาพแวดล้อม Amazon EC2 c6gn.16xlarge เมื่อเปรียบเทียบกับ Memcached ในสภาพแวดล้อม AWS c6gn.16xlarge แล้ว Dragonfly สามารถดำเนินการตามคำขอเขียนได้มากขึ้น 4,7 เท่าต่อวินาที (3,8 ล้านเทียบกับ 806k) และคำขออ่านเพิ่มขึ้น 1,77 เท่าต่อวินาที (3,7 ล้านเทียบกับ 2,1 ล้าน)

ในการทดสอบพื้นที่เก็บข้อมูล 5 GB Dragonfly ต้องการหน่วยความจำน้อยกว่า Redis 30% ในระหว่างการสร้างสแน็ปช็อตโดยใช้คำสั่ง "bgsave" ปริมาณการใช้หน่วยความจำจะเพิ่มขึ้น แต่ในช่วงเวลาสูงสุดหน่วยความจำจะถูกเก็บไว้น้อยกว่าใน Redis เกือบสามเท่า และการดำเนินการเขียนสแน็ปช็อตนั้นเร็วกว่ามาก (ในกรณีของ Redis) ทดสอบ a สแนปชอตเขียนบน Dragonfly ใน 30 วินาที และ Redis - ใน 42 วินาที)

บาง คุณสมบัติแมลงปอคือ:

  • โหมดแคชที่จะแทนที่ข้อมูลเก่าด้วยข้อมูลใหม่โดยอัตโนมัติเมื่อหน่วยความจำว่างหมดลง
  • รองรับวงจรชีวิตการผูกข้อมูลระหว่างที่ข้อมูลได้รับการพิจารณาให้เป็นปัจจุบัน
  • รองรับการล้างสถานะการจัดเก็บข้อมูลไปยังดิสก์ในพื้นหลังสำหรับการกู้คืนในภายหลังหลังจากรีบูต
  • การมีคอนโซล HTTP (เชื่อมโยงกับพอร์ต TCP 6379) สำหรับการจัดการระบบและ API สำหรับการส่งคืนเมตริก เข้ากันได้กับ Prometheus
  • รองรับคำสั่ง Redis 185 คำสั่ง ซึ่งเทียบเท่ากับการทำงานของ Redis 5 โดยประมาณ
  • รองรับคำสั่ง Memcached ทั้งหมดยกเว้น CAS (ตรวจสอบและกำหนดค่า)
  • รองรับการทำงานแบบอะซิงโครนัสเพื่อสร้างภาพรวม
  • การใช้หน่วยความจำที่คาดการณ์ได้
  • ล่าม Lua ในตัว 5.4.
  • รองรับประเภทข้อมูลที่ซับซ้อน เช่น แฮช ชุด รายการ (ZSET, HSET, LIST, SETS และ STRING) และข้อมูล JSON
  • รองรับการจำลองที่เก็บข้อมูลสำหรับความล้มเหลวและการทำโหลดบาลานซ์

สำหรับผู้สนใจรหัส Dragonfly ควรทราบไว้ดังนี้ เขียนด้วยภาษา C/C++ และเผยแพร่ภายใต้ ใบอนุญาต BSL . สาระสำคัญของ BSL คือโค้ดการทำงานแบบขยายนั้นมีให้ในขั้นต้นสำหรับการแก้ไข แต่บางครั้งสามารถใช้งานได้ฟรีภายใต้เงื่อนไขเพิ่มเติมเท่านั้น ซึ่งจำเป็นต้องซื้อใบอนุญาตเชิงพาณิชย์เพื่อเลี่ยงผ่าน

ข้อกำหนดสิทธิ์การใช้งานเพิ่มเติมของโครงการ Dragonfly กำหนดให้ต้องย้ายโค้ดไปยัง Apache License 2.0 ในวันที่ 15 มีนาคม 2028 จนกว่าจะถึงเวลานั้น สิทธิ์การใช้งานจะอนุญาตให้ใช้โค้ดเพียงเพื่อรับรองการทำงานของบริการและผลิตภัณฑ์เท่านั้น แต่ห้ามไม่ให้ใช้เพื่อสร้างการชำระเงิน บริการคลาวด์ที่ทำหน้าที่เป็นปลั๊กอินของ Dragonfly

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


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

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

*

*

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