Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

บทนำสู่ Oracle Times Ten

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 ในระดับแอปพลิเคชัน

  1. แคชแต่ละตารางและตารางที่เกี่ยวข้อง
  2. แคชทั้งหมดหรือชุดย่อยของแถวและคอลัมน์

• ฐานข้อมูลแคชแบบอ่านอย่างเดียวและอัปเดตได้

  1. เข้าถึงตารางแคชเหมือนตารางฐานข้อมูล SQL ปกติ
  2. เข้าร่วม/ค้นหา แทรก/อัปเดต/ลบ

• การซิงโครไนซ์ข้อมูลอัตโนมัติ

  1. TimesTen ถึง Oracle
  2. 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

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน