Dragonfly โครงการที่อ้างว่ามาแทนที่ Redis และ Memcached ได้เร็วกว่า

ได้ข่าวว่า รุ่นแรกมีอยู่แล้ว ระบบแคชข้อมูลในหน่วยความจำ Dragonfly ซึ่งให้การสนับสนุนโปรโตคอล Memcached และ Redis แต่ช่วยให้การสืบค้นข้อมูลทำงานด้วยประสิทธิภาพที่สูงขึ้นมากและใช้หน่วยความจำน้อยลง

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

The BSL ถูกเสนอโดยผู้ร่วมก่อตั้งของ MySQL เป็นทางเลือกแทนรุ่น Open Core สาระสำคัญของ BSL คือรหัสการทำงานแบบขยายนั้นมีให้สำหรับการแก้ไขในขั้นต้น แต่ในบางครั้งสามารถใช้งานได้ฟรีภายใต้เงื่อนไขเพิ่มเติมเท่านั้น ซึ่งจำเป็นต้องซื้อใบอนุญาตการค้าเพื่อเลี่ยงผ่าน

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

แมลงปอ อ้างว่าเป็นระบบจัดเก็บหน่วยความจำที่เร็วที่สุดในโลก ตามนักพัฒนาและเกณฑ์มาตรฐาน เมื่อเปรียบเทียบกับ Redis แล้ว Dragonfly มีประสิทธิภาพเพิ่มขึ้นถึง 25 เท่า และลดการใช้หน่วยความจำลง 3 เท่าภายใต้ภาระงานทั่วไป เซิร์ฟเวอร์ Dragonfly เดียวสามารถประมวลผลคำขอได้หลายล้านรายการต่อวินาที ตัวอย่างเช่น ในสภาพแวดล้อม Amazon EC2 c6gn.16xlarge มีปริมาณงาน 3,8 ล้านคำขอต่อวินาที

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

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

ของฟังก์ชันที่มีอยู่ใน เวอร์ชันแรกเน้นการรองรับโปรโตคอล RESP2 และคำสั่ง Redis 130 คำสั่งซึ่งสอดคล้องกับฟังก์ชันการทำงานของ Redis 2.8 รีลีสคร่าวๆ

นอกจากนี้ Dragonfly รองรับคำสั่ง Memcached ทั้งหมดยกเว้น CAS (ตรวจสอบและตั้งค่า) รองรับการทำงานแบบอะซิงโครนัสเพื่อสร้างสแน็ปช็อต ใช้หน่วยความจำที่คาดการณ์ได้ มีล่าม Lua 5.4 ในตัว และรองรับประเภทข้อมูลที่ซับซ้อน เช่น แฮช ชุด และรายการ (ZSET, HSET, LIST, SETS และ STRING)

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

สถานะการจัดเก็บสามารถล้างข้อมูลไปยังดิสก์ในพื้นหลังเพื่อการกู้คืนในภายหลังหลังจากรีบูต ในการจัดการระบบ มีคอนโซล HTTP (เชื่อมโยงกับพอร์ต TCP 6379) และ API เพื่อส่งคืนตัวชี้วัดที่สอดคล้องกับ Prometheus ในรุ่นต่อๆ ไป เราวางแผนที่จะขยายการรองรับคำสั่ง Redis และใช้ความสามารถในการจำลองที่เก็บข้อมูลสำหรับเฟลโอเวอร์และโหลดบาลานซ์

สุดท้ายนี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับมัน คุณควรรู้ว่ารหัส Dragonfly เขียนด้วย C/C++ และเผยแพร่ภายใต้ BSL (Business Source License)

สามารถปรึกษาโครงการ ในลิงค์ต่อไปนี้.


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

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

*

*

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