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

Arise by INFINITAS และ Google Cloud ร่วมผนึกกำลัง ต่อยอดนวัตกรรมดิจิทัล สร้าง Open Platform สัญชาติไทย และร่วมพัฒนาศักยภาพนักพัฒนาไทยให้ก้าวไกลสู่ระดับโลก [Guest Post]

กรุงเทพฯ ประเทศไทย มิถุนายน 2566 – ล่าสุด ที่งาน Google Cloud Bangkok Summit 2023 บริษัท Arise by …

[Video Webinar] TechTalk Webinar : เชื่อมต่อทุกแพลตฟอร์มประชุมออนไลน์ด้วย Pexip Enterprise Room Connector

สำหรับผู้ที่ไม่ได้เข้าฟังการบรรยายเรื่อง “เชื่อมต่อทุกแพลตฟอร์มประชุมออนไลน์ด้วย Pexip Enterprise Room Connector” เพื่อเรียนรู้ถึงโซลูชันที่ช่วยเชื่อมต่อแพลตฟอร์มประชุมออนไลน์ที่หลากหลายเข้าด้วยกัน พร้อมทั้งรองรับการเชื่อมต่ออุปกรณ์ห้องประชุมที่คุณมีอยู่แล้วไปยังแพลตฟอร์มต่าง ๆ ด้วยโซลูชัน SaaS ที่พร้อมใช้งานจาก Pexip ที่เพิ่งจัดไปเมื่อสัปดาห์ที่ผ่านมา หรือต้องการรับชมการบรรยายซ้ำอีกครั้ง สามารถเข้าชมวิดีโอบันทึกย้อนหลังได้ที่บทความนี้ค่ะ