Antipattern: จัดเก็บข้อมูลที่มีขนาดใหญ่กว่า 256 KB ในแคช

คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

Apigee Edge ช่วยให้สามารถจัดเก็บข้อมูลในแคชที่รันไทม์เพื่อให้ข้อมูลคงอยู่และดึงข้อมูลได้เร็วขึ้น

  • ข้อมูลจะจัดเก็บไว้ในแคชในหน่วยความจำของ Message Processor ในตอนแรก ซึ่งเรียกว่าแคช L1
  • แคช L1 ถูกจํากัดด้วยจํานวนหน่วยความจําที่สงวนไว้สําหรับแคชเป็นเปอร์เซ็นต์ของหน่วยความจํา JVM
  • ระบบจะเก็บรายการที่แคชไว้ไว้ในแคช L2 ซึ่งผู้ประมวลผลข้อความทุกคนเข้าถึงได้ ดูรายละเอียดเพิ่มเติมได้ที่ส่วนด้านล่าง
  • แคช L2 ไม่มีการจํากัดจำนวนรายการแคช แต่ขนาดสูงสุดของรายการที่แคชได้ถูกจํากัดไว้ที่ 256 KB ขนาดแคชที่แนะนำเพื่อประสิทธิภาพที่ดีที่สุดคือ 256 KB

รูปแบบที่ไม่ถูกต้อง

รูปแบบการเขียนโปรแกรมที่ไม่เหมาะสมนี้กล่าวถึงผลกระทบของการละเมิดข้อจำกัดขนาดแคชปัจจุบันภายในแพลตฟอร์ม Apigee Edge

เมื่อแคชข้อมูลที่มีขนาดใหญ่กว่า 256 KB ผลที่ตามมามีดังนี้

  • คําขอ API ที่ดําเนินการเป็นครั้งแรกในโปรแกรมประมวลผลข้อความแต่ละรายการต้องรับข้อมูลจากแหล่งที่มาเดิม (นโยบายหรือเซิร์ฟเวอร์เป้าหมาย) แยกต่างหาก เนื่องจากรายการที่มีขนาดมากกว่า 256 KB จะใช้ไม่ได้ในแคช L2
  • การจัดเก็บข้อมูลขนาดใหญ่ (> 256 KB) ในแคช L1 มีแนวโน้มที่จะเพิ่มภาระให้กับทรัพยากรของแพลตฟอร์ม ส่งผลให้หน่วยความจำแคช L1 เต็มเร็วขึ้น จึงมีพื้นที่ว่างสำหรับข้อมูลอื่นๆ น้อยลง ด้วยเหตุนี้ คุณจึงแคชข้อมูลได้ไม่ดีเท่าที่ควร
  • ระบบจะนำรายการที่แคชไว้ออกจากโปรแกรมประมวลผลข้อความเมื่อถึงขีดจํากัดของจํานวนรายการ ซึ่งจะทำให้ระบบดึงข้อมูลจากแหล่งที่มาเดิมอีกครั้งในโปรแกรมประมวลผลข้อความที่เกี่ยวข้อง

โฟลว์ชาร์ต 2 รายการ
  1 รายการสำหรับขนาด<=256KB ที่แสดงโฟลว์ระหว่างพร็อกซี API กับโปรแกรมประมวลผลข้อความ และโฟลว์ระหว่างโปรแกรมประมวลผลข้อความกับแคช L2 ของพื้นที่เก็บข้อมูลถาวร 1 รายการสำหรับขนาด>256KB ที่แสดงการไหลระหว่าง API Proxy และ Message Processor และการไหลระหว่าง Message Processor กับ Data/Response ซึ่งไม่ได้จัดเก็บไว้ในแคช L2

ผลกระทบ

  • ระบบจะไม่จัดเก็บข้อมูลที่มีขนาดใหญ่กว่า 256 KB ในแคช L2/แคชถาวร
  • การเรียกใช้แหล่งที่มาเดิม (นโยบายหรือเซิร์ฟเวอร์เป้าหมาย) บ่อยขึ้นจะทำให้เวลาในการตอบสนองของคำขอ API เพิ่มขึ้น

แนวทางปฏิบัติแนะนำ

  • เราขอแนะนำให้จัดเก็บข้อมูลขนาดไม่เกิน 256 KB ในแคชเพื่อให้ได้ประสิทธิภาพสูงสุด
  • หากจำเป็นต้องจัดเก็บข้อมูลมากกว่า 256 KB ให้พิจารณาดังนี้
    • การใช้ฐานข้อมูลที่เหมาะกับการจัดเก็บข้อมูลขนาดใหญ่

      หรือ

    • การบีบอัดข้อมูล

อ่านเพิ่มเติม