Microsoft เปิดตัว ของเขาเมื่อเร็ว ๆ นี้ ตัดสินใจปล่อยการ์เน็ต, ระบบการจัดการฐานข้อมูล NoSQL ของคุณเป็นโอเพ่นซอร์ส ระบบ NoSQL นี้ก็คือ มุ่งเน้นไปที่การสร้างร้านค้าแคช และเข้ากันได้กับไลบรารีไคลเอนต์ที่มีอยู่สำหรับพื้นที่จัดเก็บข้อมูล Redis
โกเมน เปิดใช้งานการสร้างคลัสเตอร์แคชที่ปรับขนาดได้ ที่รองรับการจำลองแบบ การโยกย้ายคีย์ และการแบ่งส่วนข้อมูลระหว่างโหนดคลัสเตอร์ เอ็นจิ้น Tsavorite ใช้เพื่อจัดเก็บข้อมูลบน Garnet (ทางแยกของที่เก็บข้อมูลที่รวดเร็วกว่าของ Microsoft)
ด้วยโอเพ่นซอร์ส Garnet เราหวังว่าจะช่วยให้ชุมชนนักพัฒนาได้รับประโยชน์จากการปรับปรุงประสิทธิภาพและความสามารถ สร้างงานของเรา และขยายระบบนิเวศของ Garnet ด้วยการเพิ่มคุณสมบัติใหม่และการเรียก API นอกจากนี้เรายังหวังว่าโอเพ่นซอร์สจะสนับสนุนการวิจัยเชิงวิชาการติดตามผลและเปิดโอกาสในอนาคตสำหรับการทำงานร่วมกันในสาขาการวิจัยที่สำคัญนี้
เกี่ยวกับ การ์เน็ต
สถาปัตยกรรมของโกเมน แยกตรรกะสำหรับการแยกวิเคราะห์และประมวลผลคำขอจากการดำเนินการจัดเก็บข้อมูล และข้อมูลจะถูกจัดเก็บโดยใช้ที่เก็บคีย์-ค่าสองแห่งโดยอิงจากไลบรารี Tsavorite
โกดังแห่งแรก "หลัก"ได้รับการปรับให้เหมาะสมเพื่อการดำเนินการสตริงที่รวดเร็วในขณะที่ร้านค้าที่สอง "อ็อบเจ็กต์" ได้รับการปรับให้เหมาะสมเพื่อจัดการกับอ็อบเจ็กต์ที่ซับซ้อนและประเภทข้อมูลขั้นสูง เช่น แฮชและรายการ ชนิดข้อมูลในที่จัดเก็บข้อมูลที่สองถูกนำมาใช้โดยใช้ไลบรารี .NET ข้อมูลถูกจัดเก็บไว้ในฮีป (ฮีป C#) ทำให้สามารถอัปเดตได้อย่างมีประสิทธิภาพและซีเรียลไลซ์ลงดิสก์
tsavorite รองรับการประมวลผลแบบสอบถามแบบมัลติเธรด การทำธุรกรรม การเปลี่ยนแปลงในโหมดไม่ล็อค (จุดตรวจสอบ) การกู้คืนความล้มเหลว การจัดเก็บสำเนาที่ซ้ำซ้อน และการรักษาบันทึกการปฏิบัติงาน
ไดรเวอร์เครือข่ายใน Garnet ขึ้นอยู่กับสถาปัตยกรรมหน่วยความจำที่ใช้ร่วมกัน เสนอโดยโครงการวิจัย ShadowFax การประมวลผล TLS และการโต้ตอบกับพื้นที่จัดเก็บข้อมูลเสร็จสิ้นในเธรดเดียวเพื่อหลีกเลี่ยงค่าใช้จ่ายในการสลับเธรด และใช้แคช CPU ได้อย่างมีประสิทธิภาพมากขึ้นเมื่อถ่ายโอนข้อมูลผ่านเครือข่าย
ระบบ NoSQL Garnet นำเสนอคุณสมบัติที่โดดเด่นหลายประการ ซึ่งทำให้มีความอเนกประสงค์และมีประสิทธิภาพสำหรับการจัดเก็บและการจัดการที่หลากหลายตั้งแต่นั้นมา ช่วยให้สามารถจัดเก็บข้อมูลได้หลายระดับ โดยการใช้ที่เก็บข้อมูล RAM, ไดรฟ์ SSD และพื้นที่เก็บข้อมูลบนคลาวด์ เพิ่มประสิทธิภาพการกระจายข้อมูลตามความต้องการเพื่อสร้างแคชที่มีประสิทธิภาพ
นอกเหนือจากนี้ก็มี การสนับสนุนอุปกรณ์ที่ขยายได้ เนื่องจากมีเลเยอร์ที่ปรับให้เหมาะสมเพื่อทำงานกับอุปกรณ์ประเภทต่างๆ เช่น SSD, ฮาร์ดไดรฟ์ และพื้นที่เก็บข้อมูลบนคลาวด์ Azure Storage
อีกทั้งยังมี รองรับข้อมูลประเภทต่างๆเนื่องจากช่วยให้คุณสามารถจัดเก็บค่าสตริงและโครงสร้างข้อมูลที่ซับซ้อน เช่น รายการ แฮช ชุด รายการเรียงลำดับ และข้อมูลตำแหน่งทางภูมิศาสตร์ พร้อมความสามารถในการกำหนดอายุการใช้งานของคีย์
ของการ คุณสมบัติอื่น ๆ สิ่งที่โดดเด่นเกี่ยวกับโกเมน:
- ป้องกันการกระจายตัวและรับประกันการจัดการพื้นที่ RAM ที่ว่างอย่างมีประสิทธิภาพ
- ช่วยให้สามารถกำหนดขีดจำกัดขนาดของหน่วยความจำที่ใช้สำหรับดัชนี บันทึก และการจัดเก็บอ็อบเจ็กต์ได้ โดยปรับให้เข้ากับความต้องการของระบบ
- อำนวยความสะดวกในการเข้าถึงพื้นที่เก็บข้อมูลโดยใช้ไคลเอนต์ Redis โดยไม่ต้องแก้ไขเพิ่มเติม
- โดยมี API เพื่อดำเนินการสืบค้นเชิงวิเคราะห์ ธุรกรรม และใช้กระบวนทัศน์การเผยแพร่/สมัครสมาชิก ซึ่งให้ความยืดหยุ่นในการจัดการข้อมูล
- จัดเตรียมวิธีการสร้างนโยบายการควบคุมการเข้าถึงผ่าน ACL อย่างยืดหยุ่น
- ช่วยให้คุณสามารถกำหนดการกำหนดค่าระบบจัดเก็บข้อมูลในรูปแบบทั่วไปและสามารถเข้าถึงได้
- ให้การสนับสนุนสำหรับการเชื่อมต่อตัวควบคุมเครือข่ายเพิ่มเติมและการเข้ารหัสการรับส่งข้อมูลโดยใช้ TLS เพื่อให้มั่นใจถึงความปลอดภัยของข้อมูล
- ช่วยให้คุณสามารถสร้างส่วนขยายใน C# เพื่อดำเนินการเพิ่มเติมกับสตริงและอ็อบเจ็กต์ ซึ่งให้ความยืดหยุ่นและความสามารถในการขยายได้
- รวมการสนับสนุนสำหรับขั้นตอนการจัดเก็บธุรกรรม การเรียกคืนจากจุดตรวจสอบ โหมด AOF (ผนวกไฟล์เท่านั้น) และความสามารถในการสร้างคลัสเตอร์พื้นที่จัดเก็บข้อมูลที่มีการจำลองแบบ การแบ่งส่วน และการกู้คืนโหนดที่ล้มเหลว
- ให้ประสิทธิภาพที่เหนือกว่าและเวลาแฝงต่ำเมื่อประมวลผลคำค้นหา มีประสิทธิภาพเหนือกว่าระบบคู่แข่งในแง่ของการตอบสนองและประสิทธิภาพการประมวลผลข้อมูล
สำหรับ สนใจรหัสโครงการคุณควรรู้ว่ามันเขียนด้วยภาษา C# พร้อมแกนหน่วยเก็บข้อมูล C++ เผยแพร่ภายใต้ใบอนุญาต MIT และเข้ากันได้กับ Linux และ Windows