ชุมชน วัลกี้ ประกาศการวางจำหน่าย วัลคีย์ 9.1 — เวอร์ชันเสถียรใหม่ของระบบจัดเก็บข้อมูลแบบคีย์-ค่าประสิทธิภาพสูงแบบโอเพนซอร์ส (ใบอนุญาต BSD) ที่รองรับการใช้งานหลากหลาย เช่น การแคชและคิวข้อความ และยังสามารถทำหน้าที่เป็นฐานข้อมูลหลักได้อีกด้วย โครงการนี้ได้รับการสนับสนุนโดย Linux มูลนิธิที่รับประกันว่าโค้ดดังกล่าวจะยังคงพร้อมใช้งานในรูปแบบโอเพนซอร์สต่อไป
โปรเจ็กต์นี้เป็นโปรเจ็กต์ที่แตกแขนงมาจาก Redis และถูกสร้างขึ้นหลังจากนั้น การเปลี่ยนแปลงในใบอนุญาต.
การอัปเดตครั้งนี้ประกอบด้วยคุณสมบัติใหม่ การปรับปรุงด้านความปลอดภัย การตรวจสอบ ประสิทธิภาพ และประสิทธิภาพของเครื่องมือ โดยมีผู้ร่วมพัฒนามากกว่า 80 คน
การเปลี่ยนแปลงที่สำคัญ
ภาษา Lua ได้ถูกย้ายไปยังโมดูลแยกต่างหากแล้ว
ใน Valkey 9.1 เอ็นจิ้นการเขียนสคริปต์ Lua ได้ถูกแยกออกจากเซิร์ฟเวอร์หลักและย้ายไปยังโมดูลแยกต่างหาก การแยกนี้ช่วยลดช่องโหว่ด้านความปลอดภัยของแกนหลักของ Valkey และช่วยให้ผู้ดูแลระบบสามารถปิดใช้งาน Lua ได้อย่างสมบูรณ์หากไม่ได้ใช้งานสคริปต์ เพื่อให้เข้าใจได้ง่ายขึ้นว่าเอ็นจิ้นการเขียนสคริปต์ใดบ้างที่โหลดอยู่ในระบบ คำสั่ง INFO จึงมีส่วนตอบสนองใหม่คือ Scripting Enginesการแก้ไขช่องโหว่ด้านความปลอดภัยใหม่
เวอร์ชันเสถียร 9.1.0 ประกอบด้วยการแก้ไขช่องโหว่ 3 รายการ ได้แก่ ช่องโหว่การใช้หน่วยความจำหลังจากถูกปล่อย (use-after-free) ในกลไกการปลดล็อกฝั่งไคลเอ็นต์ ช่องโหว่การเข้าถึงหน่วยความจำที่ไม่ถูกต้องในคำสั่ง 7RESTORE และช่องโหว่การใช้หน่วยความจำหลังจากถูกปล่อย (use-after-free) ระหว่างการซิงโครไนซ์แบบเต็มรูปแบบในระหว่างการเรียกใช้โค้ด Lua/ฟังก์ชันพร้อมการหยุดการทำงานชั่วคราว ช่องโหว่เหล่านี้ระบุไว้ในหมายเหตุเป็น CVE-2026-23479, CVE-2026-25243 และ CVE-2026-23631ACL ระดับฐานข้อมูล
มีการเพิ่มระบบควบคุมการเข้าถึงระดับฐานข้อมูล ซึ่งช่วยให้สามารถกำหนดสิทธิ์ได้อย่างละเอียดมากขึ้นในการตั้งค่าแบบหลายผู้ใช้ และเหนือกว่ากฎการเข้าถึงโดยรวมสำหรับอินสแตนซ์ Valkey ทั้งหมดการโหลดใบรับรอง TLS ใหม่โดยอัตโนมัติ
Valkey 9.1 รองรับการโหลดใบรับรอง TLS ใหม่โดยอัตโนมัติแล้ว สำหรับผู้ดูแลระบบ นั่นหมายถึงขั้นตอนการเปลี่ยนใบรับรองด้วยตนเองที่ลดลง และการใช้งานระบบรักษาความปลอดภัยที่สะดวกยิ่งขึ้นทีมงาน HGETDEL ชุดใหม่
คำสั่งนี้จะดึงและลบฟิลด์หนึ่งหรือหลายฟิลด์จากโครงสร้างแฮชโดยอัตโนมัติ ซึ่งมีประโยชน์อย่างยิ่งสำหรับสถานการณ์ต่างๆ เช่น คิวหรือการใช้ข้อมูลเพียงครั้งเดียว ซึ่งก่อนหน้านี้จำเป็นต้องรวม HGET และ HDEL ผ่านธุรกรรมทีมงาน MSETEX ชุดใหม่
MSETEX ช่วยให้คุณสามารถตั้งค่าคีย์หลายตัวที่มีอายุการใช้งานร่วมกันได้โดยใช้คำสั่งเดียว ก่อนหน้านี้ สถานการณ์เช่นนี้ต้องใช้การเรียกใช้ SETEX หลายครั้ง หรือการผสมผสานระหว่างการเรียกใช้ SET และ EXPIRE ผ่านไปป์ไลน์ คำสั่งใหม่นี้ช่วยลดจำนวนการเรียกใช้และทำให้โค้ดทั่วไปสำหรับการจัดการเซสชันและข้อมูลชั่วคราวง่ายขึ้นทีมงาน CLUSTERSCAN ชุดใหม่
ขณะนี้คลัสเตอร์มีคำสั่งเดียวสำหรับการสแกนคีย์ทั่วทุกโหนดแล้ว ก่อนหน้านี้ ลูกค้าต้องเรียกใช้คำสั่ง SCAN บนแต่ละโหนดด้วยตนเองและรวมผลลัพธ์เข้าด้วยกัน CLUSTERSCAN ช่วยลดความซับซ้อนของไลบรารีไคลเอ็นต์ เครื่องมือผู้ดูแลระบบ และงานปฏิบัติการต่างๆ เช่น การค้นหาคีย์ตามรูปแบบหรือประเภททั่วทั้งคลัสเตอร์การเพิ่มประสิทธิภาพการใช้หน่วยความจำของสตริง
การปรับปรุงประสิทธิภาพตัวชี้ภายในสำหรับสตริงที่มีความยาวน้อยกว่า 128 ไบต์ พบว่าสามารถลดการใช้หน่วยความจำได้สูงสุดถึง 20% ซึ่งมีความสำคัญอย่างยิ่งสำหรับงานแคชทั่วไปที่จัดเก็บค่าขนาดเล็กจำนวนมากใช้หน่วยความจำน้อยลงสำหรับชุดข้อมูลที่เรียงลำดับแล้ว
การปรับปรุงประสิทธิภาพของ Skiplist ช่วยลดการใช้หน่วยความจำสำหรับชุดข้อมูลที่เรียงลำดับแล้วได้สูงสุดถึง 10% นอกจากนี้ การดำเนินการกับชุดข้อมูลที่เรียงลำดับแล้ว รวมถึงการค้นหาข้อมูลเช่น ZRANGEBYSCORE และ ZRANGEBYLEX ก็ได้รับการปรับปรุงให้เร็วขึ้นด้วยการทำงานที่รวดเร็วขึ้นด้วยการนำงานเก่ามาปรับปรุงใหม่
การจัดสรรตารางแฮชภายในใหม่ ซึ่งมักเกิดขึ้นเมื่อพื้นที่คีย์ขยายใหญ่ขึ้น ได้รับการปรับปรุงให้มีประสิทธิภาพมากขึ้นเพื่อลดความหน่วง นอกจากนี้ ในบันทึกการเผยแพร่ยังกล่าวถึงการลดความหน่วงที่เกิดขึ้นเป็นช่วงๆ เนื่องจากการปล่อยหน้าข้อมูลแบบเพิ่มทีละน้อยอีกด้วยปรับปรุงโมเดลการทำงานแบบมัลติเธรดของ I/O แล้ว
เวอร์ชันทดสอบ 9.1.0-rc2 ได้ปรับปรุงโมเดลการทำงานร่วมกันของเธรด I/O โดยใช้คิวแบบไร้การล็อก บันทึกการเผยแพร่ระบุว่าปริมาณงานเพิ่มขึ้น 8–17%เร่งความเร็วในการดำเนินการ GET และ SET
ปัจจุบัน Valkey ใช้ฮาร์ดแวร์เป็นค่าเริ่มต้นเท่าที่จะเป็นไปได้ ซึ่งช่วยลดภาระของระบบเรียกใช้งานที่เกี่ยวข้องกับเวลา โครงการนี้อ้างว่าประสิทธิภาพโดยรวมเพิ่มขึ้นสูงสุดถึง 3% สำหรับการดำเนินการ GET และ SETการกำจัดขยะชิ้นใหญ่ได้รวดเร็วยิ่งขึ้น
ขณะนี้ Valkey จะระงับการปรับขนาดตารางแฮชภายในชั่วคราวในระหว่างการดำเนินการต่างๆ เช่น SREM, ZREM และ HDEL เพื่อหลีกเลี่ยงการคำนวิดแฮชซ้ำโดยไม่จำเป็นและเพิ่มความเร็วในการลบองค์ประกอบจำนวนมากการสร้างแบบจำลองที่มีประสิทธิภาพมากขึ้นในระหว่างปฏิบัติการ AOF
เมื่อสร้างสำเนาโดยเปิดใช้งาน AOF ไฟล์ RDB ที่ได้จะถูกนำมาใช้ซ้ำแทนที่จะสร้างสแนปช็อตใหม่สำหรับไฟล์ฐาน AOF เริ่มต้น ซึ่งจะช่วยลดภาระงานที่ไม่จำเป็นเมื่อปรับใช้สำเนาปรับปรุง valkey-cli และ valkey-benchmark แล้ว
ได้เพิ่มการรองรับการย้ายสล็อตอะตอมิกใน valkey-cli ผ่านพารามิเตอร์ --cluster-use-atomic-slot-migration สำหรับการดำเนินการ --cluster rebalance และ --cluster reshard แล้ว นอกจากนี้ยังได้เพิ่มเอาต์พุตการกระจาย RPS ใน valkey-benchmark พร้อมกับพารามิเตอร์ --warmup และ --duration ทำให้การทดสอบประสิทธิภาพทำได้ง่ายขึ้น
แยกกันโดยใช้ร่วมกับ Valkey 9.1 ในระบบนิเวศ โครงการที่เกี่ยวข้องกำลังได้รับการส่งเสริม: ผู้ดูแลระบบ Valkey สำหรับการจัดการคลัสเตอร์ด้วยภาพ Valkey Search 1.2 พร้อมฟังก์ชันการค้นหาข้อความเต็มรูปแบบ ตัวกรองตัวเลข แท็ก และการค้นหาเวกเตอร์ รวมถึงไลบรารีไคลเอ็นต์ วัลคีย์ ไกลด์.
Valkey 9.1 เป็นการอัปเดตครั้งสำคัญในแง่ของประสิทธิภาพ: ใช้หน่วยความจำน้อยลงสำหรับโครงสร้างทั่วไป ลดความหน่วงระหว่างการสร้างใหม่ภายใน มีคำสั่งใหม่สำหรับคลัสเตอร์และข้อมูลชั่วคราว และมีโมเดลความปลอดภัยที่แม่นยำยิ่งขึ้นสำหรับการติดตั้งใช้งานจริง
ที่มา: linux.org.ru
