OrientDB - การแคช
Cachingเป็นแนวคิดที่จะสร้างสำเนาของโครงสร้างตารางฐานข้อมูลที่ให้สภาพแวดล้อมที่สะดวกสบายสำหรับแอปพลิเคชันของผู้ใช้ OrientDB มีกลไกการแคชหลายระดับในระดับต่างๆ
ภาพประกอบต่อไปนี้ให้แนวคิดเกี่ยวกับการแคชคืออะไร
ในภาพประกอบด้านบน DB1, DB2, DB3 เป็นอินสแตนซ์ฐานข้อมูลสามแบบที่ใช้ในแอปพลิเคชัน
Level-1 แคชคือ Local cacheซึ่งจัดเก็บเอนทิตีทั้งหมดที่เซสชันหนึ่งรู้จัก หากคุณมีธุรกรรมสามรายการในเซสชันนี้จะถือเอนทิตีทั้งหมดที่ใช้โดยธุรกรรมทั้งสามรายการ แคชนี้จะถูกล้างเมื่อคุณปิดเซสชันหรือเมื่อคุณใช้วิธี "ล้าง" ช่วยลดภาระของการดำเนินการ I / O ระหว่างแอปพลิเคชันและฐานข้อมูลและเพิ่มประสิทธิภาพการทำงาน
Level-2 แคชคือ Real cacheที่ทำงานโดยใช้ผู้ให้บริการบุคคลที่สาม คุณสามารถควบคุมเนื้อหาของแคชได้อย่างเต็มที่กล่าวคือคุณจะสามารถระบุได้ว่ารายการใดที่ควรลบรายการใดควรเก็บไว้นานขึ้นเรื่อย ๆ เป็นแคชที่ใช้ร่วมกันแบบเต็มในหลายเธรด
Storage model ไม่มีอะไรนอกจากอุปกรณ์จัดเก็บข้อมูลที่เป็นดิสก์หน่วยความจำหรือเซิร์ฟเวอร์ระยะไกล
แคชทำงานอย่างไรใน OrientDB
การแคช OrientDB ให้วิธีการที่แตกต่างกันในสภาพแวดล้อมที่แตกต่างกัน การแคชส่วนใหญ่จะใช้สำหรับการทำธุรกรรมฐานข้อมูลที่เร็วขึ้นลดเวลาในการประมวลผลของธุรกรรมและเพิ่มประสิทธิภาพ โฟลว์ไดอะแกรมต่อไปนี้แสดงวิธีการแคชทำงานในโหมดโลคัลและโหมดไคลเอนต์เซิร์ฟเวอร์
โหมดภายในเครื่อง (ฐานข้อมูลแบบฝัง)
โฟลว์ไดอะแกรมต่อไปนี้จะบอกคุณว่าเร็กคอร์ดอยู่ระหว่างที่เก็บข้อมูลและแอพพลิเคชั่นที่ใช้ในโหมดโลคัลอย่างไรเมื่อเซิร์ฟเวอร์ฐานข้อมูลของคุณอยู่ในโลคัลโฮสต์ของคุณ
เมื่อแอปพลิเคชันไคลเอนต์ขอระเบียน OrientDB ตรวจสอบสิ่งต่อไปนี้ -
หากธุรกรรมได้เริ่มขึ้นระบบจะค้นหาบันทึกที่เปลี่ยนแปลงภายในธุรกรรมและส่งคืนหากพบ
หากเปิดใช้งานแคชภายในเครื่องและมีระเบียนที่ร้องขอให้ส่งกลับ
หาก ณ จุดนี้บันทึกไม่อยู่ในแคชให้ขอไปที่ Storage (ดิสก์หน่วยความจำ)
โหมดไคลเอนต์เซิร์ฟเวอร์ (ฐานข้อมูลระยะไกล)
โฟลว์ไดอะแกรมต่อไปนี้จะบอกคุณว่าเร็กคอร์ดอยู่ระหว่างหน่วยเก็บข้อมูลและแอ็พพลิเคชันที่ใช้ในโหมดไคลเอนต์เซิร์ฟเวอร์กล่าวคือเมื่อเซิร์ฟเวอร์ฐานข้อมูลของคุณอยู่ในตำแหน่งระยะไกล
เมื่อแอปพลิเคชันไคลเอนต์ขอบันทึก OrientDB จะตรวจสอบสิ่งต่อไปนี้ -
หากธุรกรรมได้เริ่มขึ้นระบบจะค้นหาบันทึกที่เปลี่ยนแปลงภายในธุรกรรมและส่งคืนหากพบ
หากเปิดใช้งานแคชภายในเครื่องและมีระเบียนที่ร้องขอให้ส่งกลับ
ณ จุดนี้หากบันทึกไม่อยู่ในแคชให้ขอข้อมูลไปยังเซิร์ฟเวอร์ผ่านการโทร TCP / IP
ในเซิร์ฟเวอร์หากเปิดใช้งานแคชภายในเครื่องและมีระเบียนที่ร้องขอให้ส่งคืน
ณ จุดนี้บันทึกยังไม่ถูกแคชในเซิร์ฟเวอร์จากนั้นขอไปที่ Storage (ดิสก์หน่วยความจำ)