Facebook เปิดตัว Beringei – Open Source ระบบ Time Series Storage Engine แบบ In-memory

เนื่องจาก Data Center ของ Facebook นั้นมีขนาดใหญ่มาก การติดตามการทำงานของอุปกรณ์ทั้งหมดภายในระบบ IT Infrastructure จึงกลายเป็นงานประมวลผลประสิทธิภาพสูงไป และทำให้ Facebook ต้องพัฒนา Time Series Storage Engine ที่ทำงานแบบ In-memory ขึ้นมาเอง และออกมาเปิด Open Source ภายใต้ชื่อโครงการว่า Beringei

Credit: Facebook

 

เมื่อ HBase บน Hard Disk และ In-memory แบบทั่วๆ ไปช้าเกินไป

เป็นกรณีที่น่าสนใจไม่น้อยในเคสนี้ เพราะ Facebook ที่มี Data Center ขนาดใหญ่นั้นต้องการใช้ Time Series Database (TSDB) ขนาดใหญ่สำหรับจัดเก้บข้อมูลสถิติการทำงานของ Server ต่างๆ ในระดับ Application, การทำงานของ Service ต่างๆ, ค่าสถิติของ CPU, Memory และ Network รวมถึงค่าอื่นๆ ให้ได้แบบ Real-time เพื่อให้การแสดงผลข้อมูลบน Dashboard นั้นมีความรวดเร็ว และทำให้ทีมงานของ Facebook สามารถแก้ไขปัญหาได้อย่างทันท่วงที

ปัญหาเริ่มเกิดขึ้นเมื่อต้นปี 2013 ที่ TSDB บน HBase นั้นเริ่มมีประสิทธิภาพในการทำงานที่ช้าลงหลังจากที่ Data Center เริ่มขยายตัว และส่งผลให้การแสดงผลข้อมูลบน Dashboard ผิดพลาดมากขึ้น นำไปสู่การทำงานที่ผิดพลาดของระบบ Automation ทั้งหมดที่เกิดขึ้นจาก Latency ที่เติบโตขึ้นในกรณีนี้

 

Beringei: Open Source In-memory Time Series Database ที่ Facebook พัฒนาขึ้นมาเอง

เพื่อแก้ปัญหาดังกล่าว Facebook จึงต้องพัฒนาระบบ TSDB แบบ In-memory เพื่อมาใช้ในระบบ Large-scale Monitoring Systems ของตนเอง โดยออกแบบการใช้งานมาสำหรับการทำ Monitoring System โดยเฉพาะ ด้วยการรองรับปริมาณการ Write ในอัตราส่วนที่สูงมาก และยังคงสามารถ Read ได้ด้วย Latency ที่ต่ำ พร้อมทำการปรับแต่งการจัดเก็บข้อมูลบน RAM ให้มีประสิทธิภาพสูงสุดได้้ในเวลาเดียวกัน โดยได้เปิดเผยออกมาในเอกสารชุด “Gorilla: A Fast, Scalable, In-Memory Time Series Database” ในงาน VLDB 2015 ซึ่งสามารถโหลดได้ที่ http://www.vldb.org/pvldb/vol8/p1816-teller.pdf

Beringei นี้ยังมีเทคโนโลยี Data Compression อยู่ภายในตัวเพื่อช่วยลด Storage Overhead ในการทำงานลง ด้วยการใช้ Lossless Streaming Compression Algorithm เพื่อบีบอัดเฉพาะข้อมูลในช่วงเวลาที่ใกล้เคียงกันเท่านั้นจากการนำ Timestamp Compression แบบ Delta-of-delta Encoding มาประยุกต์ใช้ ทำให้สามารถลดปริมาณของหน่วยความจำที่ต้องใช้ในแต่ละช่วงเวลาลงได้

นอกจากนี้้เนื่องจากการที่ข้อมูลส่วนใหญ่นั้นไม่ได้เปลี่ยนแปลงมากนักจากในช่วงเวลาก่อนหน้า อีกทั้งข้อมูลส่วนใหญ่ยังถูกจัดเก็บในรูปแบบของ Integer ดังนั้นการนำ XOR มาใช้เพื่อติดตามเฉพาะ Bit ที่เปลี่ยนแปลงไป และจัดเก็บข้อมูลเฉพาะการเปลี่ยนแปลงที่เกิดขึ้นจาก Bit ก่อนหน้านี้ก็ทำให้สามารถลดขนาดของ Data Set โดยรวมลงไปได้กว่า 90%

ปัจจุบัน Facebook ใช้ Beringei เพื่อจัดเก็บข้อมูลสูงสุดถึง 10,000 ล้าน Time Series และให้บริการข้อมูลได้สูงสุดถึง 18 ล้าน Query ต่อนาที ในขณะที่มี Delay ระหว่างการเขียนข้อมูลและการนำข้อมูลขึ้นมาวิเคราะห์อยู่ที่ 300 Microsecond เท่านั้น ซึ่งถือว่าเร็วกว่าระบบ Monitoring System ที่ Facebook ใช้ก่อนหน้านี้้เป็นอย่างมาก

ผู้ที่สนใจสามารถศึกษาเพิ่มเติมเกี่ยวกับ Beringei ได้ที่ https://github.com/facebookincubator/beringei เลยนะครับ

 

ที่มา: https://code.facebook.com/posts/952820474848503/beringei-a-high-performance-time-series-storage-engine/ 

About techtalkthai

ทีมงาน TechTalkThai เป็นกลุ่มบุคคลที่ทำงานในสาย Enterprise IT ที่มีความเชี่ยวชาญทางด้าน Network, Security, Server, Storage, Operating System และ Virtualization มารวมตัวกันเพื่ออัพเดตข่าวสารทางด้าน Enterprise IT ให้แก่ชาว IT ในไทยโดยเฉพาะ

Check Also

Elastic 9.4 ออกแล้ว

Elastic ได้ออกมาประกาศเปิดตัว Elastic 9.4 อย่างเป็นทางการ โดยเพิ่มความสามารถในการตรวจสอบการทำงานของ Context Engineering, Application และ Infrastructure เพิ่มเติม, เสริม AI ในการรักษาความมั่นคงปลอดภัย และเพิ่มความสามารถอื่นๆ อีกมากมาย ดังนี้

Extreme Networks เปิดตัว Wi-Fi 7 AP รุ่นใหม่ พร้อม Agentic AI สำหรับบริหารจัดการระบบเครือข่ายแบบอัตโนมัติ

Extreme Networks ได้ออกมาประกาศถึงอัปเดตครั้งใหญ่ โดยเปิดตัว Wi-Fi 7 Access Point รุ่นใหม่ล่าสุด 5 รุ่น พร้อมนวัตกรรมใหม่ในการบริหารจัดการระบบเครือข่ายด้วย AI Agent เพื่อดูแลรักษาระบบเครือข่ายขององค์กรให้ทำงานได้อย่างต่อเนื่องโดยอัตโนมัติ