Times Ten เป็นผลิตภัณฑ์ของ Oracle ที่มีศักยภาพในการเพิ่มประสิทธิภาพอย่างมากของฐานข้อมูล Oracle
นอกจากการเพิ่มประสิทธิภาพหน่วยความจำแล้ว Times Ten ยังให้ปริมาณงานสูง รับรองความทนทาน และให้ความสามารถในการปรับขนาด ในขณะเดียวกันก็ให้เวลาตอบสนองน้อยที่สุด โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันที่ต้องพึ่งพาประสิทธิภาพที่สำคัญ ซึ่งแตกต่างจากฐานข้อมูลทั่วไป Times Ten ให้ประสิทธิภาพสูง โดยอยู่ใน RAM ทั้งหมด
TimesTen History
• คิดค้นที่ HP Labs ในปี 1994
• ฝังอยู่ในโซลูชัน Open Call ของ HP
• แยกตัวออกไปในปี 1996 โดยเป็นสตาร์ทอัพที่ได้รับทุนสนับสนุนจาก VC
• ลูกค้าการผลิตหลายพันราย
• เข้าซื้อกิจการโดย Oracle Corporation ในปี 2548
• 3 รุ่นใหญ่ตั้งแต่ปี 2005:6.0, 7.0, 11gR2,18c รุ่น 1
ภาพรวมของ Oracle Timesten
Oracle TimesTen In-Memory Database คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์ในหน่วยความจำที่มีความคงอยู่และความพร้อมใช้งานสูง เดิมทีได้รับการออกแบบและใช้งานที่ห้องทดลองของ Hewlett-Packard ในเมืองพาโลอัลโต รัฐแคลิฟอร์เนีย TimesTen ได้แยกตัวออกมาเป็นสตาร์ทอัพแยกต่างหากในปี 2539 และ Oracle Corporation เข้าซื้อกิจการในปี 2548
ฐานข้อมูล Times Ten มีความคงอยู่และความพร้อมใช้งานสูง ให้เวลาแฝงที่ต่ำมากและปริมาณงานสูง ซึ่งเป็นฐานข้อมูลในหน่วยความจำ คุณสมบัติอื่น ๆ รวมถึง API ฐานข้อมูลเชิงสัมพันธ์มาตรฐาน เช่น JDBC และ ODBC Times Ten ไม่เพียงสามารถใช้เป็นฐานข้อมูลในหน่วยความจำแบบสแตนด์อโลนเท่านั้น แต่ยังให้ยูทิลิตี้ใช้เป็นแคชในฐานข้อมูลเชิงสัมพันธ์อื่นๆ รวมถึง Oracle Database ด้วย มักใช้ในแอปพลิเคชัน OLTP ที่มีปริมาณสูงมาก รวมถึงการซื้อขายทางการเงินและการเรียกเก็บเงินทางโทรคมนาคม
วิธีที่ TimesTen จัดเก็บข้อมูลบนดิสก์
แหล่งที่มาของรูปภาพ:https://luna-ext.di.fc.ul.pt/oracle11g/timesten.112/e14261/overview.htm
ที่เก็บข้อมูล TimesTen แต่ละแห่งมีไฟล์จุดตรวจสอบสองไฟล์เท่านั้น ด่านจะถูกเรียกทุก ๆ 10 นาทีโดยปริยาย สิ่งนี้จะเขียนหน้าหน่วยความจำสกปรกไปยังไฟล์จุดตรวจสอบแรก จากนั้นจุดตรวจสอบถัดไปจะใช้ไฟล์จุดตรวจสอบอื่น ธุรกรรมการเขียนจะถูกวางไว้ในบัฟเฟอร์ในหน่วยความจำก่อน จากนั้นจึงฟลัชไปยังไฟล์บันทึก
การบันทึกธุรกรรมสองประเภท:
1. การบันทึกบัฟเฟอร์:
(ความเร็ว:เร็ว ความทนทาน:ดี) ธุรกรรมจะถูกบันทึกลงในบัฟเฟอร์บันทึกในหน่วยความจำก่อน เมื่อบัฟเฟอร์เต็ม บัฟเฟอร์จะถูกล้างไปยังดิสก์ในพื้นหลัง กระบวนการนี้เร็วมาก (5,000 TPS หรือมากกว่า) มีโอกาสเล็กน้อยที่ธุรกรรมอาจสูญหายจากการหยุดทำงานก่อนที่บัฟเฟอร์จะถูกล้าง ลูกค้าสามารถกำหนดขนาดของบัฟเฟอร์บันทึกได้
2.Durable Commit
(ความเร็ว:ช้า ความทนทาน:ยอดเยี่ยม) ทุกธุรกรรมจะถูกฟลัชไปยังดิสก์ทันที ความเร็วนี้ขึ้นอยู่กับความเร็วของอุปกรณ์ดิสก์ เนื่องจากทุกธุรกรรมถูกบันทึกลงดิสก์ จึงมีความทนทานมาก
ลูกค้าสามารถเปลี่ยนจากการบันทึกบัฟเฟอร์เป็น DURABLE COMMIT ได้ตลอดเวลาโดยเรียกใช้ฟังก์ชัน SQL ที่เรียกว่า ttDurableCommit().
ลูกค้าสามารถควบคุมความทนทานเทียบกับประสิทธิภาพในขณะใช้งานได้อย่างยืดหยุ่น ซึ่งเป็นสิ่งที่ไม่สามารถทำได้ด้วย RDBMS แบบเดิม
การปรับปรุงเวลาตอบสนองที่สำคัญ:แคชฐานข้อมูลในหน่วยความจำ + ฐานข้อมูล Oracle
ที่มาของรูปภาพ:https://www.oracle.com/technetwork/database/windows/ds-imdb-cache-1-129794.pdf
กราฟด้านบนแสดงเวลาตอบสนองธุรกรรมเฉลี่ยที่วัดได้สำหรับประเภทธุรกรรมทั้ง 7 ประเภท
แถบสีแดงคือเวลาตอบสนองที่ได้รับเมื่อข้อมูลถูกแคชใน TimesTen IMDB เป็นการปรับปรุงอย่างมากสำหรับการทำงานของฐานข้อมูลแอปพลิเคชัน จำไว้ว่าส่วนที่ดีของเวลาตอบสนองบนฐานข้อมูล Oracle นั้นเกิดจากการเชื่อมต่อระหว่างไคลเอนต์กับเซิร์ฟเวอร์และการไปกลับของเครือข่าย ซึ่งไม่มีอยู่จริงเมื่อแอปพลิเคชันเชื่อมโยงโดยตรงกับฐานข้อมูล TimesTen ในหน่วยความจำ แอปพลิเคชันยังสามารถเชื่อมต่อกับ TimesTen ผ่านไคลเอนต์/เซิร์ฟเวอร์ TCP/IP
การสร้างฐานข้อมูล TimesTen
กำหนด DSN
• แอตทริบิวต์ DataStore:ระบุชื่อไดเรกทอรีของไฟล์จุดตรวจสอบของฐานข้อมูล เช่น DataStore=/data/TTDEMO/TTDEMO-DSN1/TTDEMO-DSN1
• แอตทริบิวต์ LogDir:ระบุชื่อไดเร็กทอรีสำหรับไฟล์บันทึกธุรกรรม บันทึกธุรกรรมประกอบด้วยบันทึกการอัพเดท การคอมมิต และการย้อนกลับของฐานข้อมูลแต่ละครั้ง
• แอตทริบิวต์ DatabaseCharacterSet:ชุดอักขระที่ข้อมูลถูกจัดเก็บอย่างมีตรรกะแบ่งออกเป็นสองส่วนหน่วยความจำแยกกัน
• ภูมิภาคหน่วยความจำฐานข้อมูล
- Permanent region
- PermSize DSN attribute configures its allocated size.
- Region stores persistent database elements (ex: tables, indexes)
- Region is written to disk during a checkpoint operation.
- Temporary region
-TempSize DSN attribute configures its allocated size
-Region stores transient data and information generated when executing statements.( temp tables, stored result sets..)
• ฐานข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อผู้ดูแลระบบอินสแตนซ์เชื่อมต่อกับฐานข้อมูล
$ttisql <DSN name>
•ยูทิลิตี้ Ttisql เชื่อมต่อกับเซิร์ฟเวอร์ DSN โดยตรงและยูทิลิตี้ ttIsqlCS เชื่อมต่อกับ DSN ของไคลเอ็นต์ TimesTen
$ttisql connStr "DSN=TTDEMO-DSN1;UID=timesten;pwd=timesten"
• นโยบาย RAM:กำหนดเมื่อฐานข้อมูลถูกโหลดเข้าและยกเลิกการโหลดจากหน่วยความจำ
inUse: The database is in memory if it is in use (default policy).
always: The database is always kept resident in memory.
manual: The database is manually loaded into and unloaded from memory.
GitOps สามารถเปิดใช้รากฐานที่มีประสิทธิภาพสำหรับการสร้างแอปพลิเคชัน Cloud Native หลักการสำคัญของ GitOps เน้นถึงประโยชน์ต่อไปนี้สำหรับองค์กร:
แคชฐานข้อมูลในหน่วยความจำ
ที่มาของรูปภาพ:https://www.oracle.com/database/technologies/timesten-cache.html
• ตารางฐานข้อมูล Cache Oracle ในระดับแอปพลิเคชัน
- แคชแต่ละตารางและตารางที่เกี่ยวข้อง
- แคชทั้งหมดหรือชุดย่อยของแถวและคอลัมน์
• ฐานข้อมูลแคชแบบอ่านอย่างเดียวและอัปเดตได้
- เข้าถึงตารางแคชเหมือนตารางฐานข้อมูล SQL ปกติ
- เข้าร่วม/ค้นหา แทรก/อัปเดต/ลบ
• การซิงโครไนซ์ข้อมูลอัตโนมัติ
- TimesTen ถึง Oracle
- Oracle ถึง TimesTen
แคช IMDB ของ Oracle
• กลุ่มแคชคืออะไร
A set of cached tables created in TimesTen database that correspond to tables in Oracle Database
• กลุ่มแคชแบบอ่านอย่างเดียว
การดำเนินการอ่านจะดำเนินการใน TimesTen
การดำเนินการเขียนจะถูกส่งผ่านไปยัง Oracle และรีเฟรชโดยอัตโนมัติไปยัง TimesTen
ที่มาของรูปภาพ:https://docs.oracle.com/cd/E18283_01/timesten.112/e14261/cache.htm
Cache Connect ใน Oracle ช่วยให้ผู้ใช้สามารถแคชชุดย่อยของฐานข้อมูล Oracle ของตนลงใน TimesTen เพื่อให้มีเวลาตอบสนองและปริมาณงานที่ดีขึ้นสำหรับข้อมูลที่เข้าถึงบ่อย
คุณสามารถแคชเลือกตารางแบบเต็ม ชุดย่อยของแถว หรือชุดย่อยของคอลัมน์ได้ แคชเป็นแบบอ่านอย่างเดียวหรืออัปเดตได้ หากข้อมูลได้รับการอัปเดตภายในฐานข้อมูล TimesTen การอัปเดตจะเผยแพร่ไปยังฐานข้อมูล Oracle ผ่านการเขียนแบบซิงโครนัส การเขียนผ่านหรือแบบอะซิงโครนัส คุณสามารถมีแคชอินสแตนซ์หลายตัวที่แคชจาก Oracle DB เดียวกัน อินสแตนซ์แคชแต่ละรายการสามารถมีชุดเนื้อหาแคชที่แตกต่างกันได้
การจัดการแคช IMDB และแนวทางปฏิบัติที่ดีที่สุด
• ตั้งค่าแคชครั้งเดียวทั้งในฐานข้อมูล Oracle และ TimesTen (ต่อเอกสารการใช้งาน)
• ตั้งค่านโยบายการรีสตาร์ท Cache Agent:Manual, always, norestart
• ระบุช่วง AUTORFRESH
- สร้างทริกเกอร์ INSERT, UPDATE และ DELETE บนตาราง Oracle ในกลุ่มแคช
- ทริกเกอร์แทรกแถวเล็กๆ ลงในตารางการบันทึกที่ TimesTen เก็บไว้ใน Oracle
- ตัวแทน TimesTen สืบค้นตารางนี้และรีเฟรชข้อมูลในช่วงเวลาที่คุณระบุ• การเปลี่ยนแปลงข้อกำหนดข้อมูลใน Oracle จะต้องมี LOAD, UNLOAD, FLUSH, REFRESH CACHE GROUPS
บทสรุป
TimesTen เป็นฐานข้อมูลเชิงสัมพันธ์ในหน่วยความจำที่ให้เวลาแฝงต่ำมากและปริมาณงานสูงมากสำหรับการดำเนินการ SQL ในขณะที่ให้ฟังก์ชันฐานข้อมูลเชิงสัมพันธ์มาตรฐานผ่าน API มาตรฐาน สามารถใช้เป็นฐานข้อมูลแบบสแตนด์อโลนหรือเป็นแคชเชิงสัมพันธ์ประสิทธิภาพสูงสำหรับฐานข้อมูล Oracle
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน