กลไก Deterministic Transaction Replay และ Global Timestamp Order Alignment ควบคม Streaming Broker ด้วย Log-Based MySQL สำหรับระบบ Streaming
การจำลองกลไก Deterministic Transaction Replay และ Global Timestamp Order Alignment ที่ใช้ใน Streaming Broker ระดับสูง โดยย้ายการทำงานมาควบคุมแบบอัตโนมัติภายใน MySQL Database ผ่าน 3 ส่วนหลัก
- การไหลของข้อมูล Data Flow
- การแก้ปัญหาของระบบ
- ข้อพึงระวังและการดูแลรักษา
การไหลของข้อมูล
- ผู้ใช้รันคำสั่ง
- บันทึกทุกคำสั่งลงตารางระบบ
- การทำงาน
- การล้างข้อมูลเก่า
- การจัดเรียงเวลาสากล
- ส่งคิวรีตามลำดับ
- การป้องกันข้อมูลสลับกัน
ปัญหา/การแก้ปัญหา
- แก้ปัญหาความไม่แน่นอน (Deterministic Guarantee) ระบบใช้การเก็บ Log จากโครงสร้าง SQL จริง และเวลาดึงข้อมูลไป Replay
- ระบบหน้าต่างเวลาและการจัดแถว (Order Alignment) ตัว Event Scheduler จะคอยกวาดข้อมูลย้อนหลังทุกๆ 1 นาที ช่วยจัดแถวข้อมูลดิบที่กระจัดกระจายให้มาอยู่ในตารางที่พร้อมใช้งาน
- ป้องกันข้อมูลซ้ำและสูญหาย (Exactly-Once Semantics) ทำหน้าที่เหมือน "ตัวคั่นหนังสือ" เมื่อสคริปต์ภายนอกหรือ Broker ดึงข้อมูลไปแล้ว จะต้องมาบันทึกจุดล่าสุดไว้ หากระบบล่ม กลไกนี้จะส่งข้อมูลต่อจากจุดเดิมทันที ไม่ต้องเริ่มนับหนึ่งใหม่
การดูแลรักษา
- ตรวจสอบดิสก์ (Disk Space) เป็นระยะ แม้เราจะสร้างระบบลบประวัติที่เก่ากว่า 7 วัน
- การเปิด-ปิดระบบ หากในอนาคตต้องการหยุดระบบชั่วคราว สามารถสั่งเปิด/ปิดได้
ข้อแนะนำ
- ปรับปรุงระดับการล็อกเพื่อลดคอขวด (Concurrency Tuning)
- การเขียนข้อมูลเข้าตลอดเวลา หากคุณใช้คำสั่งล้างข้อมูลเก่าแบบเป็นก้อนใหญ่ๆ (Bulk Delete) ทำให้ระบบช้าลง
ความคิดเห็น
แสดงความคิดเห็น