อย่าเก็บข้อมูลซ้ำซ้อน: Zero Copy
ระบบส่วนใหญ่ทำงานโดยการดาวน์โหลดข้อมูล คุณร้องขอข้อมูลจากเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะส่ง payload กลับมา จากนั้นคุณจึงจัดเก็บข้อมูลนั้นไว้ในระบบของคุณเอง
สิ่งนี้ทำให้เกิดปัญหา คือคุณจะลงเอยด้วยการมีข้อมูลที่ซ้ำซ้อนกัน คุณสามารถแก้ปัญหานี้ได้โดยใช้หลักการที่เรียกว่า Zero Copy
Zero Copy คืออะไร?
Zero Copy หมายถึงการที่คุณเข้าถึงข้อมูลโดยไม่ต้องเคลื่อนย้ายมัน ลองนึกภาพเหมือนการเปิดหน้าต่าง คุณมองเห็นข้อมูลผ่านหน้าต่าง แต่ข้อมูลยังคงอยู่ที่เดิม คุณไม่จำเป็นต้องนำข้อมูลมาไว้ที่บ้านเพื่อดูมัน
ServiceNow ใช้งานสิ่งนี้อย่างไร:
Operations Management จำเป็นต้องใช้ข้อมูลจากหลายแหล่ง เช่น SAP, AWS หรือ Snowflake โดยปกติแล้ว คุณจะใช้ ETL pipelines ในการเคลื่อนย้ายข้อมูลเหล่านี้ ซึ่งต้องใช้เวลาและอาจทำให้เกิดข้อผิดพลาดได้
ServiceNow ใช้ Virtual Data Fabric Tables แทน โดยระบบจะทำการ Query ข้อมูลเฉพาะเมื่อคุณร้องขอเท่านั้น ระบบจะเก็บข้อมูลไว้ในหน่วยความจำ (memory) ชั่วคราว และเมื่อคุณทำงานเสร็จสิ้น ข้อมูลก็จะหายไป
ข้อดี:
• คุณไม่ต้องเก็บข้อมูลซ้ำซ้อน • คุณไม่จำเป็นต้องทำการ sync ข้อมูลระหว่างระบบ • คุณช่วยลดความเสี่ยงด้านความปลอดภัย เนื่องจากข้อมูลไม่ได้ถูกจัดเก็บไว้ในสถานที่ที่สอง
ข้อแลกเปลี่ยน (Trade-offs):
• ความเร็ว: คุณต้องพึ่งพาความเร็วของเครือข่าย หากแหล่งข้อมูลช้า คุณก็ต้องรอ • Uptime: หากระบบต้นทางล่ม คุณจะไม่เห็นข้อมูลใดๆ เลย เพราะคุณไม่มีข้อมูลสำรองในเครื่อง (local backup) • ภาระงาน (Load): ทุกคำขอของผู้ใช้จะส่ง live query ไปยังระบบต้นทาง • ค่าใช้จ่าย: การเรียกใช้ API บ่อยครั้งอาจมีค่าใช้จ่ายสูง • การทำรายงาน: คุณไม่สามารถทำ index ข้อมูลนี้ได้ ดังนั้นการรันรายงานที่ซับซ้อนจึงทำได้ยากกว่า
ควรใช้ Zero Copy เมื่อใด:
ใช้เมื่อการเคลื่อนย้ายข้อมูลมีต้นทุนสูงกว่าประโยชน์ที่จะได้รับจากการจัดเก็บข้อมูล
- ข้อมูลที่ละเอียดอ่อน: เก็บข้อมูล PII หรือ HIPAA ไว้ในที่เดียวเพื่อลดความเสี่ยง
- ความต้องการแบบ Real-Time: ใช้สำหรับการแก้ไขปัญหาด้าน IT ซึ่งข้อมูลที่ล้าสมัยจะไม่มีประโยชน์
- การค้นหาเป็นครั้งคราว: ใช้เพื่อตรวจสอบตัวเลขงบประมาณเพียงตัวเดียว แทนที่จะต้อง sync ฐานข้อมูลทั้งชุด
- ชุดข้อมูลขนาดมหาศาล: ใช้เพื่อดูข้อมูลสรุปของ log ขนาดใหญ่ แทนที่จะต้องเคลื่อนย้ายข้อมูลระดับ petabytes
Source: https://dev.to/syncrofosatron/dont-repeat-data-zero-copy-1ff0
Optional learning community: https://t.me/GyaanSetuAi
