อย่าเก็บข้อมูลซ้ำซ้อน: 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 เมื่อใด:

ใช้เมื่อการเคลื่อนย้ายข้อมูลมีต้นทุนสูงกว่าประโยชน์ที่จะได้รับจากการจัดเก็บข้อมูล

  1. ข้อมูลที่ละเอียดอ่อน: เก็บข้อมูล PII หรือ HIPAA ไว้ในที่เดียวเพื่อลดความเสี่ยง
  2. ความต้องการแบบ Real-Time: ใช้สำหรับการแก้ไขปัญหาด้าน IT ซึ่งข้อมูลที่ล้าสมัยจะไม่มีประโยชน์
  3. การค้นหาเป็นครั้งคราว: ใช้เพื่อตรวจสอบตัวเลขงบประมาณเพียงตัวเดียว แทนที่จะต้อง sync ฐานข้อมูลทั้งชุด
  4. ชุดข้อมูลขนาดมหาศาล: ใช้เพื่อดูข้อมูลสรุปของ log ขนาดใหญ่ แทนที่จะต้องเคลื่อนย้ายข้อมูลระดับ petabytes

Source: https://dev.to/syncrofosatron/dont-repeat-data-zero-copy-1ff0

Optional learning community: https://t.me/GyaanSetuAi