Garnet ระบบแคชน้องใหม่ มาแรงจาก Microsoft

Garnet from Microsoft

เมื่อเดือนมีนาคม 2024 ที่ผ่านมา ทาง Redis ได้ออกมาประกาศอัพเดต license โครงการจากเดิมคือ BSD (Berkeley Software Distribution) ที่ให้อิสระสูงมาเป็น SSPL (Server Side Public License) ซึ่งมีข้อบังคับว่าหากมีการนำ Redis ไปใช้งานที่ให้บริการบน Cloud จะต้องเปิดเผยซอร์สโค้ดอื่นๆ ที่เกี่ยวข้องไปด้วย ทำให้ธุรกิจต่างๆ ต้องซื้อ license ทางธุรกิจ หากไม่อยากเปิดเผยซอร์สโค้ดนั่นเอง

ในเวลาไล่เลี่ยกัน ทางไมโครซอฟท์ก็ได้ปล่อย Garnet ออกมา ซึ่งถูกพูดถึงกันค่อนข้างมาก เพราะนอกจากจะเป็น Open source และมีความเข้ากันได้กับ Redis แล้ว ยังมีประสิทธิภาพที่ดีกว่าในหลายๆ จุดอีกด้วย  

แต่ก่อนที่จะไปพูดถึง Garnet ขอแนะนำให้คนที่ยังไม่รู้จักเครื่องมือจำพวก Redis หรือ Garnet เข้าใจกันก่อนดีกว่า

ในโลกของนักพัฒนาระบบ หลายๆ ครั้งเรามักจะพบว่าฐานข้อมูลเป็นคอขวดของระบบ จึงมีการนำระบบแคชมาใช้งาน ซึ่งเครื่องมือที่นิยมกันอย่างแพร่หลายก็คือ Redis (แต่จริงๆ แล้วเรายังสามารถเอาไปใช้งานแนวอื่นได้อีก เช่น ใช้เป็นฐานข้อมูล, ใช้เป็น message broker เป็นต้น) แต่เนื่องด้วยเหตุผลที่กล่าวไปข้างต้น น่าจะส่งผลต่อความนิยมของ Redis ไม่มากก็น้อย หลายๆ คนเริ่มมองหาทางเลือกอื่น จึงเป็นที่มาของบทความนี้นั่นเอง

ทีม Microsoft Research ได้ซุ่มพัฒนาระบบแคชขึ้นมาและนำไปใช้งานในระบบต่างๆ ของไมโครซอฟท์เอง จนถึงวันนี้ทางไมโครซอฟท์ก็ได้ open source เจ้า Garnet ให้กับทุกคนได้นำไปใช้งานและต่อยอดให้ดียิ่งๆ ขึ้นไปอีก และเนื่องด้วย Garnet ถูกพัฒนาขึ้นมาใหม่ในยุคที่การใช้งานแคชเป็นสิ่งจำเป็น จึงทำให้ไมโครซอฟท์มีโจทย์ที่ชัดเจนว่า จะต้องพัฒนาให้ดีกว่าตัวที่มีอยู่ในปัจจุบัน ซึ่งสิ่งที่ออกมานั้น ก็มีข้อดีที่เป็นเอกลัษณ์หลายข้อเลยทีเดียว เช่น

  1. ใช้โปรโตคอล RESP ซึ่งเป็นโปรโตคอลเดียวกันกับที่ใช้ใน Redis ทำให้สามารถใช้ Garnet ได้โดยไม่ต้องแก้ code ฝั่ง client เลย
  2. มีความสามารถในการปรับขนาดและปริมาณงานที่ดีกว่าตัวอื่นๆ ในท้องตลาดมาก ซึ่งนำไปสู่การประหยัดต้นทุนสำหรับแอปพลิเคชันและบริการขนาดใหญ่
  3. ด้วยเทคโนโลยี .NET ล่าสุด ทำให้ Garnet เป็นแพลตฟอร์มข้ามแพลตฟอร์ม ขยายได้ และทันสมัย ได้รับการออกแบบมาให้ง่ายต่อการพัฒนา โดยไม่สูญเสียประสิทธิภาพการทำงานในการพัฒนาระบบทั่วๆ ไป
Benefits of garnet
คุณลักษณะที่โดดเด่นของ Garnet

นอกจากนี้ทางไมโครซอฟท์ยังได้เปิดเผยผลการทดสอบประสิทธิภาพอีกด้วย ดังข้อมูลในภาพด้านล่างนี้ ซึ่งจะเห็นได้ว่า Garnet นั้นมีประสิทธิภาพดีกว่า Redis 7.2, KeyDB, ไปจนถึง Dragonfly โดยเฉพาะในกรณีที่ส่งคำสั่งเป็นแบตช์ใหญ่ๆ และค่า latency ก็ต่ำกว่าชัดเจน

รูปแสดงผลของการดึงข้อมูลพร้อมๆ กันจากหลายๆ Client
รูปแสดงผลของการดึงข้อมูลพร้อมๆ กันจากหลายๆ Client โดยฝั่งซ้ายจะเป็นฐานข้อมูลขนาด 1024 keys ส่วนฝั่งขวาจะเป็นฐานข้อมูลขนาด 256M keys

จากที่กล่าวมาข้างต้น ก็พอจะทำให้เห็นได้ว่า Garnet มีความน่าสนใจไม่น้อยเลย ทั้งความสามารถและประสิทธิภาพ

หากคุณต้องการสร้างระบบที่มีความท้าทายในการรองรับปริมาณโหลดที่สูง บริษัทไอโคเน็กซ์พร้อมให้คำปรึกษาและพัฒนาระบบให้คุณ ด้วยประสบการณ์ของเราที่สั่งสมมามากกว่า 10 ปีในวงการพัฒนาซอฟต์แวร์เลยทีเดียว สามารถติดต่อเราได้ที่ thaisales@iconext.co.th หรือคลิก Inquiry Form

ที่มา:

Redis

Microsoft

    wpChatIcon