Monday, November 25, 2024
Technology

Cloudflare เลิกใช้ Elasticsearch เก็บ log หันไปใช้ ClickHouse แทน – SMS Marketing ราคาถูกที่สุด

271views

Cloudflare รายงานถึงการเปลี่ยนฐานข้อมูลสำหรับเก็บ log จากเดิมที่ใช้ Elasticsearch หันมาใช้ฐานข้อมูลแบบคอลัมน์ ClickHouse หลังกจากพบข้อจำกัดของ Elasticsearch หลายอย่าง ได้แก่

Mapping Explosion: เนื่องจากข้อมูล log มักมีฟิลด์เปลี่ยนไปมาเรื่อยๆ แต่ Elasticsearch พยายาม index ทุกฟิลด์แยกจากกัน ทำให้เมื่อถังข้อมูลมีฟิลด์จำนวนมากเข้าก็จะกินหน่วยความจำมาก ทางแก้ปัญหาของ Elasticsearch คือจำกัดฟิลด์ที่ใช้งานแต่ก็จะทำให้ไม่สามารถค้นหาฟิลด์ที่ไม่ได้ระบุไว้
Multi-tenancy: ตอนนี้ Elasticsearch ไม่สามารถจำกัดจำนวนเอกสารที่ผู้ใช้ต้องสแกนในการคิวรีแต่ละครั้ง ส่งผลให้ผู้ใช้คนใดคนหนึ่งส่งคำสั่งคิวรีหนักๆ ก็จะทำทั้งคลัสเตอร์ช้าไปได้
การจัดการยาก: หากคลัสเตอร์ Elasticsearch ทำงานผิดพลาดจนกลายเป็น degrade แล้วกระบวนการกู้คืนจะใช้เวลานาน การ index ฐานข้อมูลใหม่กินเวลานาน และกระบวนการย้ายข้อมูลจากฐานข้อมูล hot ไป cold กระทบประสิทธิภาพคลัสเตอร์
การจัดการหน่วยความจำจาวา: เนื่องจาก Elasticsearch ใช้จาวาจึงมีช่วงเวลาที่ garbage collector ทำงาน ทำให้เสียประสิทธิภาพในช่วงนั้น ทาง Cloudflare พยายามเปลี่ยนตัว garbage collector แล้วแต่ก็ไม่ดีขึ้นนัก

การเปลี่ยนไปใช้ ClickHouse ได้เปรียบหลายอย่าง เช่น การเพิ่ม index ในฟิลด์ใดๆ สามารถทำได้ทันที, ตัวฐานข้อมูลบีบอัดเป็นค่าเริ่มต้นและคอนฟิกแยกกระบวนการบีบอัดรายฟิลด์ได้, และการขยายคลัสเตอร์ได้ประสิทธิภาพตามขนาดคลัสเตอร์ที่ขยาย (linearly scalable)

ในบทความนี้ Cloudflare ยังแนะนำถึงการใช้ ClickHouse ว่าควรเลือกรูปแบบการเก็บข้อมูลว่าจากเก็บแยกฟิลด์แบบ SQL ปกติที่ต้อง ALTER TABLE ทุกครั้งเพื่อเพิ่มฟิลด์ หรือจะใช้ JSON เพื่อเก็บฟิลด์ที่ไม่แน่นอน แต่มีข้อจำกัดว่าไม่ควรมีข้อมูลเกิน 1,000 ฟิลด์ สำหรับ Cloudflare ที่มีฟิลด์จำนวนมากก็เลือกเก็บข้อมูลเป็น array ของฟิลด์อื่นๆ ทั้งหมด

ผลที่ได้จากการเปลี่ยนไช้ ClickHouse ทำให้ Cloudflare ลดการใช้ซีพียูและหน่วยความจำจากการเขียนลง 8 เท่า ขนาดข้อมูลลดลง 10 เท่า ทำให้ Cloudflare สามารถเก็บข้อมูลเต็มรูปแบบไม่ต้อง sampling บางส่วน, และการคิวรีเกือบทั้งหมดประสิทธิภาพดีขึ้นมาก

แม้จะชม ClickHouse ค่อนข้างมากแต่ทาง Cloudflare ก็ระบุว่า Elasticsearch เป็นตัวค้นหาแบบ full text ที่ดี และการใช้งานของแต่ละที่ก็อาจจะต่างกันจึงควรพิจารณาการใช้งานจริงด้วย

ที่มา – Cloudflare

Bulk SMS และ SMS OTP

ราคาถูกพิเศษ สำหรับปริมาณมาก ติดต่อ LINE @deecom

Generated by Feedzy