งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 Transaction Management and Concurrency Control.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 Transaction Management and Concurrency Control."— ใบสำเนางานนำเสนอ:

1 1 Transaction Management and Concurrency Control

2 2 Transaction u คือ การกระทำใด ๆ ของ user program ใน DBMS ที่ใช้งานกลุ่มคำสั่งปฏิบัติงานที่ execute ข้อมูลใน ฐานข้อมูล โดยอาจเป็นได้ทั้งการอ่าน การเขียน การ ปรับปรุงหรือการลบข้อมูลในฐานข้อมูล u เป็นหน่วยของการทำงานที่กระทำกับข้อมูลใน ฐานข้อมูล เพื่อเปลี่ยนสถานะของข้อมูลจากสถานะ หนึ่งไปสู่อีกสถานะหนึ่ง u ภายใน Transaction จะประกอบด้วยชุดของ operation ต่าง ๆ เรียงกันเป็นลำดับ

3 3 Example Transaction

4 4 Transaction Operations u BEGIN_TRANSACTION : คำสั่งเริ่มการประมวลผลของ Transaction u READ หรือ WRITE : เป็นคำสั่งที่ใช้ในการอ่านหรือเขียน ข้อมูลบนฐานข้อมูล u END_TRANSACTION : เป็นคำสั่งที่จบการอ่านหรือเขียน ข้อมูลในฐานข้อมูล ซึ่งในจุดนี้จะมีการตรวจสอบว่าการ ปรับปรุงข้อมูลสำเร็จ (committed) หรือถูกยกเลิก (aborted) เพื่อเตรียมย้อนกลับการทำงาน (rollback)

5 5 Transaction Operations u COMMIT TRANSACTION : เป็นคำสั่งที่บอกว่าหากการ ทำงานของ Transaction เสร็จสมบูรณ์ การเปลี่ยนแปลง ต่าง ๆ ที่กระทำกับฐานข้อมูลจะไม่สามารถย้อนการทำงาน กลับไปได้ (undone) u ROLLBACK : เป็นคำสั่งที่บอกว่าหากการทำงานของ Transaction ไม่เสร็จสมบูรณ์การเปลี่ยนแปลงต่าง ๆ ที่ กระทำกับฐานข้อมูลระหว่างการทำงานของ Transaction จะถูกยกเลิกและย้อนกลับไปสู่สถานะก่อนการเริ่ม ประมวลผล Transaction

6 6 สถานะของ Transaction แบ่งออกเป็น 5 สถานะคือ u Active คือ สถานะเริ่มต้นการทำงานของ Transaction u Partially Committed คือสถานะที่แต่ละการกระทำของ Transaction ทำงานเสร็จ u Committed คือ สถานะที่ Transaction ทำงานเสร็จ สมบูรณ์ u Failed คือ สถานะที่มีข้อผิดพลาดเกิดขึ้นกับ Transaction นั้น u Aborted คือ สถานะที่เกิดขึ้นหลังจากที่เกิดสถานะ Failed เพื่อหยุดการทำงานของ Transaction

7 7 State Transition Diagram for Transaction

8 8 คุณสมบัติของ Transactions เรียกย่อๆ ว่า ACID ซึ่งเป็นคุณสมบัติที่ DBMS ต้องคง คุณสมบัติทั้งหมดไว้ให้แก่การทำงานของ Transaction มี 4 คุณสมบัติ ดังนี้ u Atomicity u Consistency u Isolation u Durability

9 9 Atomicity เมื่อผู้ใช้ประมวลผลรายการเปลี่ยนแปลงแล้ว ทุก การ กระทำของรายการเปลี่ยนแปลงต้องเสร็จ สมบูรณ์ทุก คำสั่ง (committed) หรือ ถ้ามีการทำงาน ใดในรายการ เปลี่ยนแปลงไม่สมบูรณ์ก็ต้องยกเลิก (aborted) รายการ เปลี่ยนแปลงนั้นและย้อนกลับการ ทำงาน (rolled back) เสมือนว่าไม่เคยประมวลผล รายการเปลี่ยนแปลงนั้นเลย

10 10 Consistency u การประมวลผล Transaction จะส่งผลให้มีการ เปลี่ยนแปลงสถานะของฐานข้อมูล ดังนั้น Transaction จะต้องรักษาความถูกต้องของ ฐานข้อมูลที่สอดคล้องกับ กฎเกณฑ์ต่าง ๆ ที่กำหนด ไว้ (Integrity Constraints) u หลังการประมวลผล Transaction เสร็จ ฐานข้อมูล ต้องอยู่ ในสถานะที่ถูกต้อง (consistent state)

11 11 Isolation u Transaction ที่มีการทำงานพร้อมกันในเวลาเดียวกันโดย ผู้ใช้หลายคน(Multi-users) จะต้องไม่รบกวนกัน u หาก T1 และ T2 ทำงานในเวลาใกล้เคียงกัน ดังนี้ u คุณสมบัติ Isolation จะถือเสมือนรายการทั้งสองทำงาน ดังนี้

12 12 Durability u Transaction ที่ทำให้เกิดการเปลี่ยนแปลงของข้อมูล ใน ฐานข้อมูล เมื่อ Transaction ทำงานเสร็จสมบูรณ์ (committed) ผลจากการเปลี่ยนนั้นจะยังคงอยู่ถาวร u เช่น การโอนเงินจาก A ไป B ถ้าทำสำเร็จ ผลที่ได้ จะคงอยู่ถาวร

13 13 DBMS Transaction Subsystem

14 14 DBMS Transaction Subsystem u Transaction Manager เป็นตัวควบคุม transaction และตัดสินใจ ว่าจะให้คำสั่งไหนประมวลผล และมีการทำงานร่วมกับ application program และเชื่อมต่อกับ Scheduler u Scheduler (lock manager, concurrency control manager) เป็นตัวจัดลำดับการประมวลผลของ transaction ให้เป็นแบบ serial execution u Recovery manager เป็นตัวรับประกันว่าถ้าหากมีข้อผิดพลาด เกิดขึ้นระหว่าง transaction แล้วฐานข้อมูลจะต้องอยู่ในสถานะ consistent u Buffer manager รับผิดชอบส่วนการส่งข้อมูลระหว่าง disk storage และ main memory

15 15 การกระทำเพื่อควบคุมการทำงานของTransactions u เพื่อกำหนดให้ Transaction มีคุณสมบัติ Atomicity จึง ได้มีการกำหนดการกระทำเพื่อควบคุมการทำงานของ Transaction ไว้ดังนี้ –Commit Transaction เป็นการกระทำที่กำหนดขึ้น เพื่อแจ้งให้ระบบทราบว่า การทำงานของ Transaction อยู่ในสถานะ Committed –Rollback Transaction เป็นการกระทำที่กำหนดขึ้น เพื่อแจ้งให้ระบบทราบว่า การทำงานของ Transaction อยู่ในสถานะ Aborted

16 16 Concurrency Control (การควมคุมสภาวะการทำงานพร้อมกัน) u คือกระบวนการที่ใช้จัดการ Transaction ต่างๆ ที่ต้อง การใช้ข้อมูลชุดเดียวกันในเวลาเดียวกัน u สาเหตุที่ทำให้เกิดสภาวะ concurrency มีอยู่ด้วยกัน 3 สาเหตุดังนี้ –Lost update problem –Uncommitted dependency problem –Inconsistent analysis problem

17 17 Lost Update Problem (ปัญหาการสูญเสียจากการปรับปรุงข้อมูล) u สาเหตุนี้เกิดขึ้นในกรณีที่ 2 Transaction หรือ มากกว่ามีการเรียกใช้ข้อมูลเดียวกัน แล้วต่างฝ่าย ต่างปรับปรุงค่าของข้อมูล โดยไม่มีการป้องกัน จากอีกฝ่ายหนึ่ง เช่น –T 1 ถอนเงิน 10 ฿ จากบัญชี bal x (เงินในบัญชี = 100 ฿) –T 2 ฝากเงิน 100 ฿ เข้าไปในบัญชีเดียวกัน –สุดท้ายเงินในบัญชีต้องคงเหลือ = 190 ฿

18 18 Lost Update Problem u ปัญหานี้สามารถหลีกเลี่ยงได้ด้วยการป้องกัน T 1 จาก การอ่านค่า bal x จนกระทั่งให้ T 2 ได้อัปเดตอย่างสมบูณ์ เสียก่อน

19 19 Uncommitted Dependency Problem (ปัญหาข้อมูลที่ยังไม่ได้รับการยอมรับความสมบูรณ์) u เกิดขึ้นในกรณีที่ 2 Transaction หรือมากกว่า มีการ เรียกใช้ข้อมูลเดียวกัน แต่มี Transaction หนึ่งที่มี การทำงานที่ยังไม่เสร็จสมบูรณ์และเกิดปัญหาขึ้น u จึงต้องมีการยกเลิกทุกการกระทำก่อนหน้าของ Transaction นั้น ส่งผลให้ข้อมูลที่ Transaction นั้นเรียกใช้กลับไปมีค่าเดิม u และทำให้ Transaction อื่นที่ใช้ข้อมูลเดียวกัน ได้รับข้อมูลที่ไม่ถูกต้องไปด้วย

20 20 u ช่วงเวลา t 4 ทรานแซกชั่น T 4 ได้มีการอัปเดตค่า bal x เป็นค่า 200 แต่ในเวลาถัดมาก็ได้มีการยกเลิกทราน แซกชั่นดังกล่าว จึงมีการ Rollback กลับไป ทำให้ค่า bal x กลับมาเป็นค่าเดิมคือ 100 u T 3 ได้มีการอ่านค่า bal x ซึ่งเป็นค่าใหม่คือ 200 ในช่วง เวลา t 5 ก่อนที่ T 4 จะถูกยกเลิกทรานแซกชั่นในเวลา t 6 และทรานแซกชั่น T 3 ก็ได้นำค่า bal x ที่ผิดไปคำนวณจึง ส่งผลให้ผลลัพธ์ที่ได้ไม่ถูกต้อง Uncommitted Dependency Problem

21 21 u ปัญหานี้หลีกเลี่ยงได้โดยการกำหนดให้ T 3 จะสามารถ อ่านค่า bal x ได้ก็ต่อเมื่อ T 4 มีสถานะ commits หรือ aborts แล้ว Uncommitted Dependency Problem

22 22 Inconsistent Analysis Problem (ปัญหาความไม่สอดคล้องกันของข้อมูล) u สาเหตุนี้เกิดขึ้นในกรณีที่ 2 Transaction หรือมากกว่า มีการเรียกใช้ข้อมูลเดียวกัน แต่มี Transaction หนึ่งที่ ได้รับข้อมูลที่อยู่ในสถานะที่ไม่ถูกต้องไปใช้งาน ส่งผล ให้การประมวลผลของ Transaction นั้นมีการ ประมวลผลที่ผิดพลาด

23 23 Inconsistent Analysis Problem u T 6 is totaling balances of account x (100฿), account y (50฿), and account z (25฿). u Meantime, T 5 has transferred 10฿ from bal x to bal z, so T 6 now has wrong result (10฿ too high).

24 24 Inconsistent Analysis Problem u ปัญหาดังกล่าวสามารถหลีกเลี่ยงได้ด้วยการป้องกัน T 6 จะสามารถอ่านค่า bal x และ bal y ได้หลังจาก T 5 ได้อัปเดตอย่างสมบูณ์เสียก่อน

25 25 Schedule u เป็นแนวทางหนึ่งในการรักษาความถูกต้องให้กับ ข้อมูล คือ การกำหนดลำดับการทำงานให้แต่ละ Transaction ที่มีการเรียกใช้ข้อมูลพร้อม ๆ กัน ซึ่ง เรียกว่า Schedule u ใช้กำหนดลำดับก่อนหลังในการเรียกใช้ข้อมูลให้กับ แต่ละ Transaction u จะช่วยทำให้ข้อมูลที่แต่ละ Transaction นำไปใช้มี ความถูกต้องอยู่เสมอ

26 26 รูปแบบของ Schedule มี 2 รูปแบบคือ u Serial Schedule u Concurrent Schedule (Nonserial Schedule)

27 27 Serial Schedule u เป็นการกำหนดลำดับการทำงานให้กับแต่ละ Transaction โดยใช้หลักของการทำทีละงาน u Transaction หนึ่งจะสามารถทำงานได้ ก็ต่อเมื่ออีก Transaction หนึ่งทำงานจนเสร็จสมบูรณ์แล้ว

28 28 Concurrent Schedule (Nonserial Schedule) u เป็นการกำหนดลำดับการทำงานให้กับแต่ละ Transaction โดยการแบ่งแต่ละ Transaction ออกเป็นส่วน ๆ แล้วจึงนำแต่ละส่วนมาทำงานสลับกัน ไป u อาจก่อให้เกิดปัญหาทางด้านความถูกต้องของข้อมูล ได้ ในกรณีที่ถ้า 2 Transaction มีการนำข้อมูลตัว เดียวกันไปประมวลผล แล้วบันทึกผลที่ได้ลงใน ฐานข้อมูลในเวลาที่ต่างกัน

29 29 Examples of Schedule

30 30 Serializability u คือ คุณสมบัติของการจัดลำดับการทำงานให้กับ Transaction ในแบบ Concurrency Schedule ที่ สามารถควบคุมให้ผลลัพธ์ที่ได้มีผลเช่นเดียวกับการ จัดลำดับการทำงานให้กับ Transaction ในแบบ Serial Schedule

31 31 Non-conflict serializable schedule

32 32 Concurrency Control Techniques u เมื่อเกิดสภาวะพร้อมกันในระบบ DBMS จะมีเทคนิค ในการจัดเรียงลำดับการทำงานของแต่ละ Transaction แบ่งออกเป็น 2 ประเภทหลักคือ –การควบคุมภาวะพร้อมกันด้วยการล็อก (Locking) –การควบคุมภาวะพร้อมกันโดยไม่ใช้วิธีการล็อก (Without Locking)

33 33 Lock-Based Concurrency Control (การควบคุมภาวะพร้อมกันด้วยการล็อก) u Locking เป็นการกำหนดให้สถานะของ Transaction ที่ต้องการใช้งานอยู่ในสถานะล็อก u เพื่อป้องกัน Transaction อื่น ๆ เข้ามาใช้งานข้อมูล นั้นจนกว่าข้อมูลที่อยู่ในสถานะล็อกนั้นทำงานเสร็จ สมบูรณ์ (committed) และปลดล็อก u เมื่อข้อมูลอยู่ในสถานะปลดล็อก Transaction อื่น ๆ จึงสามารถนำข้อมูลไปใช้งานต่อได้

34 34 Example - Lock-Based Bob Alice

35 35 พื้นฐานการล็อก ประกอบด้วย u Read Lock –โดยถ้าทรานแซกชั่นใดมีการ read lock ข้อมูล จะสามารถทำการอ่านข้อมูลได้ แต่จะไม่สามารถ ทำการอัปเดตข้อมูลได้ u Write Lock –ถ้าทรานแซกชั่นใด ๆ มีการ write lock ข้อมูล จะสามารถทำได้ทั้งการอ่านและการอัปเดต

36 36 Type of Locks u แบ่งออกเป็น 2 ชนิดด้วยกัน –Shared Locks –Exclusive Locks

37 37 Shared Locks u เป็นการล็อกที่อนุญาตให้ทรานแซกชั่นอื่น ๆ สามารถ ทำการอ่านเรคอร์ดต่าง ๆ ได้ ในขณะที่จะไม่อนุญาต ให้ทำการอัปเดตข้อมูลอย่างเด็ดขาด u ผู้ใช้งานอื่น ๆ ยังสามารถอ่านข้อมูลต่าง ๆ ที่ถูกล็อก ได้ แต่จะไม่อนุญาตให้มีการอัปเดตข้อมูล u ซึ่งก็คือการ read lock นั่นเอง

38 38 Exclusive Locks u เป็นการล็อกที่ไม่อนุญาตให้ทรานแซกชั่นอื่น ๆ ใช้ ข้อมูลที่ถูกล็อกอยู่ u ข้อมูลจะถูกใช้งานได้เพียงคนเดียวในขณะนั้น u ผู้ใช้งานอื่น ๆ ที่ต้องการใช้งานจะไม่สามารถทำการ อ่านและอัปเดตข้อมูลที่ถูกล็อกได้จนกว่าจะปลดล็อก u ซึ่งก็คือการ write lock นั่นเอง

39 39 Two-Phase Locking (2PL) u เป็นวิธีที่นำแนวคิดแบบล็อกมาจัดลำดับการทำงาน ของแต่ละ Transaction ให้อยู่ในรูปแบบ Serializability โดยกำหนดให้ Transaction มีการ ทำงานที่แบ่งออกเป็น 2 ระยะด้วยกันคือ –Growing phase : เป็นระยะที่ทรานแซกชั่นทำ การล็อกข้อมูลอย่างเดียว โดยไม่ปล่อยล็อก –Shrinking phase : เป็นระยะที่ทรานแซกชั่น ปล่อยล็อกข้อมูลอย่างเดียว โดยไม่สนใจการ ล็อกข้อมูลใหม่

40 40 Two-Phase Locking (2PL) u เมื่อแต่ละ Transaction เริ่มต้นทำงานจะเข้าสู่ระยะ Growing ซึ่ง Transaction จะล็อกข้อมูลที่ต้องใช้ งาน โดยไม่ปล่อยล็อกจนกว่า Transaction นั้นจะ ทำงานเสร็จ จึงจะทำงานในระยะ Shrinking เพื่อ ปล่อยล็อกข้อมูลต่าง ๆ u ซึ่งการกำหนดระยะเวลาของการล็อกที่แยกออก จากกันจะทำให้ในแต่ละ Transaction ไม่สามารถ เรียกใช้ข้อมูลที่ถูกเรียกใช้โดย Transaction อื่นได้

41 41 Two-Phase Locking (2PL)

42 42 Preventing Lost Update Problem using 2PL

43 43 Preventing Uncommitted Dependency Problem using 2PL

44 44 Preventing Inconsistent Analysis Problem using 2PL

45 45 Locking Level ระดับของการล็อกมี 4 ระดับดังนี้ u Database Locking u Table Locking u Record Locking u Field Locking

46 46 Database Locking u เป็นการล็อกทั้งฐานข้อมูล เหมาะสมกับการ ปฏิบัติงานที่มีการประมวลผลแบบแบตซ์ (batch processing) หรือนำไปใช้ในการ Backup ข้อมูล u ขณะที่ทำการประมวลผลอยู่ ฐานข้อมูลทั้งระบบจะ ถูกล็อกไม่ให้ใครคนอื่นสามารถใช้งานได้เลย จนกว่าจะปลดล็อก

47 47 Table Locking u เป็นการล็อกรีเลชัน โดยจะทำการล็อกตารางใด ตารางหนึ่งที่ต้องการ u ส่งผลให้ผู้ใช้คนอื่น ๆ ไม่สามารถอ่านเรคอร์ดของ ตารางนั้นได้ จนกว่าจะมีการปลดล็อกตาราง

48 48 Record Locking u เป็นการล็อกข้อมูลบางเรคอร์ดหรือบางแถวใน ตาราง u แถวที่ถูกล็อก ส่งผลให้ผู้ใช้คนอื่นไม่สามารถเข้ามา ใช้งานได้จนกว่าเรคอร์ดนั้นจะถูกปลดล็อก u เหมาะกับงานที่ต้องการปรับปรุงข้อมูลบางเรคอร์ด ที่ต้องการ

49 49 Field Locking u เป็นการล็อกแอตตริบิวท์หรือคอลัมน์ที่มักจะถูกใช้ งานหรือปรับปรุงบ่อย ๆ u โดยผู้ใช้คนอื่นยังสามารถใช้งานข้อมูลต่าง ๆ ได้ ยกเว้นแอตตริบิวท์ที่ล็อกอยู่ u เหมาะกับการนำมาใช้กับการล็อกแอตตริบิวท์ที่ มักจะมีการเปลี่ยนแปลงค่าอยู่เสมอ

50 50 DeadLock u ภาวะติดตาย เกิดขึ้นจากการที่ทรานแซกชั่นตั้งแต่ 2 ทรานแซกชั่นหรือมากกว่าทำการล็อกข้อมูลที่ใช้ งาน u โดยในแต่ละทรานแซกชั่นต่างรอใช้งานข้อมูล ของทรานแซกชั่นอื่นที่ใช้งานอยู่ จึงทำให้ไม่ สามารถทำการประมวลผลต่อได้ หรือที่เรียกว่าเกิด ภาวะติดตายขึ้น

51 51 Deadlock

52 52 การแก้ไข DeadLock u ทำการสละ Transaction หนึ่งด้วยการปลด Lock Transaction นั้นออกจากลูป เพื่อให้ Transaction อื่นสามารถทำงานต่อได้ u ระบบจะต้องค้นหาวงจรที่ก่อให้เกิด Deadlock นั้น แล้วเลือก Transaction หนึ่งในวงจร Deadlock นั้น มาทำการ Rollback เพื่อปลดปล่อย Lock ทั้งหมด ที่ Transaction นั้นได้ทำไว้ และปล่อยให้ Transaction อื่นทำงานต่อไป u Transaction ที่ถูกเลือกมาทำ Rollback จะถูก เรียกว่า “victim”

53 53 Concurrency Control Without Locking (การควบคุมภาวะพร้อมกันโดยไม่ใช้วิธีการล็อก) Without Locking มี 2 วิธีคือ u Optimistic Concurrency Control u Timestamp-Based Concurrency Control

54 54 Optimistic Concurrency Control u แนวคิดนี้จะอนุญาตให้ Transaction สามารถ execute ได้ตามปกติโดยไม่มีการตรวจสอบ ล่วงหน้า ซึ่งแต่ละ Transaction จะมีพื้นที่เป็นของ ตนเอง (Private Workspace) แต่จะมีการ ตรวจสอบก่อนที่จะบันทึกลงในฐานข้อมูลจริง

55 55 Optimistic Concurrency Control u การตรวจสอบจะพิจารณาจาก “Transaction นั้นมี การทำงานที่ไม่เป็นไปตามลำดับ และทำให้เกิดการ ขัดกันกับ Transaction อื่นหรือไม่” –ถ้ามีการขัดกัน จะทำการเริ่มต้นการทำงานของ Transaction นั้นใหม่ –แต่ถ้าไม่มีการขัดกัน จะนำข้อมูลใน Private Workspace นี้บันทึกลงในฐานข้อมูลต่อไป

56 56 วิธี Optimistic Concurrency Control ประกอบด้วย 3 ขั้นตอน u Read : ขั้นตอนการอ่าน u Validation : ขั้นตอนการตรวจสอบ u Write : ขั้นตอนการบันทึก

57 57 วิธี Optimistic Concurrency Control u Read –Transaction จะทำการอ่านข้อมูลจากฐานข้อมูล และทำการเขียนลงใน Private Workspace โดย Transaction อื่นไม่สามารถเข้ามาข้อง เกี่ยวได้

58 58 วิธี Optimistic Concurrency Control u Validation –DBMS จะทำการตรวจสอบลำดับการทำงานของ แต่ละ Transaction โดยพิจารณาจาก Transaction ที่มีการยืนยันความสำเร็จในการ ทำงานด้วยคำสั่ง commit แล้ว –DBMS จะทำการตรวจสอบความเป็นไปได้ใน การขัดกันกับ Transaction อื่น –ถ้าเกิดการขัดกัน Transaction นั้นจะถูกยกเลิก และ Private Workspace จะถูก Clear และ เริ่มต้นการทำงานใหม่

59 59 วิธี Optimistic Concurrency Control u Write –ในกรณีที่ไม่เกิดปัญหาการขัดกันระหว่าง Transaction ข้อมูลที่อยู่ใน Private Workspace จะ ถูกบันทึกลงในฐานข้อมูล

60 60 Timestamp-Based Concurrency Control u วิธีนี้ DBMS จะเป็นตัวกำหนดลำดับของแต่ละ Transaction ในการเข้าทำงาน u โดยเรียงตามลำดับการเกิดก่อนหลังของแต่ละ Transaction

61 61 Timestamp-Based Concurrency Control u การกำหนดค่า Timestamp ให้กับแต่ละ Transaction ทำได้ดังนี้ –ใช้เวลา system clock »จะนำค่าเวลาระบบเป็นตัวแปรเก็บค่า Timestamp เพื่อใช้กำหนดลำดับที่ของแต่ละ Transaction –ใช้ตัวแปร counter »โดยตัวแปร counter จะเป็นตัวนับเพิ่มทีละ 1 เพื่อ นำมาเป็นตัวกำหนดลำดับที่ให้กับแต่ละ Transaction

62 62 ลักษณะของเวลาที่บันทึกคู่กับข้อมูล u Write-Timestamp –เป็นเวลาล่าสุดที่ข้อมูลถูกเปลี่ยนแปลงค่าโดย Transaction ใด ๆ u Read-Timestamp –เป็นเวลาล่าสุดที่ข้อมูลถูกนำไปใช้งานโดย Transaction ใด ๆ u เวลาทั้ง 2 ส่วนจะถูกนำไปใช้พิจารณาเปรียบเทียบ กับกรณีต่าง ๆ

63 63 กรณีที่ Transaction มีการอ่านข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อน เวลา Write-Timestamp ของข้อมูลที่ Transaction นั้นนำมาใช้งาน –Transaction A ต้องอ่านข้อมูลนั้นขึ้นมาใหม่ –หรือเริ่มการทำงานของ Transaction A ใหม่ เนื่องจากในขณะที่ Transaction A กำลังทำงาน ข้อมูลนั้นได้ถูกเปลี่ยนแปลงค่าโดย Transaction อื่นไปแล้ว ส่งผลให้ค่าของข้อมูลที่ Transaction A เก็บอยู่ไม่ใช่ค่าล่าสุด

64 64 กรณีที่ Transaction มีการอ่านข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้น หลังจากหรือเวลาเดียวกับเวลา Write-Timestamp ของข้อมูลที่ Transaction A อ่านมาแล้ว –แสดงว่าข้อมูลที่อ่านมานั้น สามารถนำไป ประมวลผลได้ –แต่จะต้องบันทึกเวลา Read-Timestamp ให้กับ ข้อมูลนั้นใหม่

65 65 กรณีที่ Transaction มีการบันทึกข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อนเวลา Read-Timestamp ของข้อมูลที่ Transaction นั้นอ่านมาแล้ว –แสดงว่าข้อมูลนั้นได้ถูก Transaction อื่นอ่านไปใช้งาน เช่นเดียวกัน ดังนั้นจึงไม่สามารถเปลี่ยนแปลงค่าของข้อมูล นั้นได้ –ในกรณีนี้ให้เริ่มต้นการทำงาน Transaction A ใหม่ เนื่องจากข้อมูลถูกที่ Transaction A เปลี่ยนแปลงค่าอาจถูก Transaction B ที่นำข้อมูลเดียวกันนั้นไปใช้งาน และเปลี่ยน แปลงค่าทับค่าที่ Transaction A เปลี่ยนแปลงไว้ได้

66 66 กรณีที่ Transaction มีการบันทึกข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อนเวลา Write-Timestamp ของข้อมูลที่ Transaction นั้นอ่านมาแล้ว –แสดงว่าระหว่างที่ Transaction A ทำงาน ข้อมูลนั้นได้ถูก Transaction B เปลี่ยนแปลงค่าของข้อมูลนั้นไปแล้ว –ดังนั้น Transaction A จึงไม่สามารถเปลี่ยนแปลงค่าของ ข้อมูลนั้นได้เนื่องจากค่าที่ Transaction A เปลี่ยนแปลงจะ ทำให้ค่าของข้อมูลเดียวกันที่ Transaction B เปลี่ยนแปลง ไว้สูญหาย –ในกรณีนี้ให้เริ่มต้นการทำงาน Transaction A ใหม่

67 67 กรณีที่ Transaction มีการบันทึกข้อมูล u ส่วนกรณีอื่น ๆ ที่นอกเหนือจาก 2 กรณีที่ผ่านมา u ให้ Transaction ทำการเปลี่ยนแปลงค่าของข้อมูลนั้น ได้ แต่จะต้องกำหนดเวลา Write-Timestamp ให้กับ ข้อมูลนั้นใหม่

68 68 Basic Timestamp Ordering

69 69 Database Recovery u เป็นกระบวนการเรียกคืนฐานข้อมูลให้กับมาสู่สภาวะ เดิมที่สามารถใช้งานได้ ในกรณีที่เกิดเหตุขัดข้องบาง ประการ ไม่ว่าจะเป็นความผิดพลาดจากผู้กระทำ ระบบคอมพิวเตอร์หรือ ความขัดข้องจากระบบไฟฟ้า

70 70 Types of Failures u ระบบล่ม u ความขัดข้องจากสื่อบันทึกข้อมูล u ความผิดพลาดจากโปรแกรมแอพพลิเคชั่น u ความขัดข้องจากภัยธรรมชาติ u การไม่ดูแลเอาใจใส่ u การก่อวินาศกรรม

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

72 72 ประเภทของหน่วยความจำสำรอง u Volatile Storage u Nonvolatile Storage u Stable Storage

73 73 ประเภทของหน่วยความจำสำรอง u Volatile Storage –เป็นอุปกรณ์ที่จะจัดเก็บข้อมูลได้ก็ต่อเมื่อมี กระแสไฟฟ้า –ในกรณีที่ไม่มีกระแสไฟฟ้าข้อมูลที่จัดเก็บอยู่ใน อุปกรณ์จะหายไป –อุปกรณ์ประเภทนี้จะใช้ในการจัดเก็บข้อมูล ชั่วคราว –เช่น RAM, Cache Memory

74 74 ประเภทของหน่วยความจำสำรอง u Nonvolatile Storage –เป็นอุปกรณ์ที่สามารถจัดเก็บข้อมูลได้โดยไม่ต้อง ใช้กระแสไฟฟ้า –เช่น Hard Disk –ปัญหาที่มักเกิดกับอุปกรณ์นี้ คือ Disk Crash

75 75 ประเภทของหน่วยความจำสำรอง u Stable Storage –เป็นอุปกรณ์ที่ไม่ต้องอาศัยกระแสไฟฟ้าในการ จัดเก็บข้อมูล –มักจะนำมาใช้ในการสำรองข้อมูลมากกว่าในการ ประมวลผล –เช่น เทปแม่เหล็ก

76 76 ประเภทของความผิดพลาด u Logical Error u System Error u System Crash u Disk Failure

77 77 ประเภทของความผิดพลาด u Logical Error –เป็นความผิดพลาดที่เกิดจากมีขั้นตอนการ ทำงานที่ไม่ถูกต้อง หรือจากตัวข้อมูลที่ไม่ สามารถรองรับการประมวลผลที่เกิดขึ้นได้ –เช่น การกำหนดขนาดของฟิลด์ไม่เพียงพอต่อ การจัดเก็บข้อมูล

78 78 ประเภทของความผิดพลาด u System Error –เป็นความผิดพลาดที่เกิดจากการทำงานตัวระบบ ที่ไม่ถูกต้อง หรือไม่ครบถ้วนพอ –เช่น ปัญหาที่เกิดจากการจัดลำดับการทำงาน ของโปรแกรมต่าง ๆ ไม่ดีพอ และส่งผลให้เกิด ปัญหาด้าน Deadlock ของข้อมูลขึ้น

79 79 ประเภทของความผิดพลาด u System Crash –เป็นความผิดพลาดต่าง ๆ ที่เกิดขึ้นอุปกรณ์ที่ใช้ จัดเก็บข้อมูลประเภท Volatile Storage –เช่น ปัญหาทางด้านกระแสไฟฟ้าที่ไม่สม่ำเสมอ ซึ่งส่งผลให้ข้อมูลที่จัดเก็บอยู่ในหน่วยความจำ สูญหายไป

80 80 ประเภทของความผิดพลาด u Disk Failure –เป็นความผิดพลาดต่าง ๆ ที่เกิดขึ้นอุปกรณ์ที่ใช้ จัดเก็บข้อมูลประเภท Nonvolatile Storage –เช่น ปัญหาทางด้าน Disk Crash ซึ่งส่งผลให้ ข้อมูลที่จัดเก็บอยู่ใน Disk บางส่วนสูญหายไป

81 81 การกู้ข้อมูลจาก Volatile Storage มี 3 แบบคือ u การกู้ข้อมูลแบบ Log-Based u การกู้ข้อมูลแบบ Shadow Paging u การกู้ข้อมูลแบบ Checkpoints

82 82 การกู้ข้อมูลแบบ Log-Based u เป็นการกู้ข้อมูลที่อาศัยข้อมูลจาก Log File ซึ่งเป็น แฟ้มข้อมูลที่ใช้บันทึกการกระทำต่าง ๆ ใน Transaction ที่ก่อให้เกิดการเปลี่ยนแปลงค่าของ ข้อมูล

83 83 Sample Log File

84 84 รูปแบบรายการที่บันทึกใน Log File แบ่งได้เป็น 3 ประเภทคือ u Transaction Start –เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction เริ่มต้นทำงาน u Transaction Commit –เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction ทำงานเสร็จ

85 85 รูปแบบรายการที่บันทึกใน Log File u Update Activity –เป็นรายการที่จะถูกบันทึกลงใน Log File ทุกครั้ง เมื่อการกระทำนั้นก่อให้เกิดการเปลี่ยนแปลงค่า ของข้อมูล

86 86 รูปแบบการบันทึกข้อมูลใน Log File มี 2 รูปแบบคือ u Deferred Database Modification –ข้อมูลที่ได้จากการประมวลผลจะถูกบันทึกลงใน ฐานข้อมูลได้ก็ต่อเมื่อ Transaction นั้นทำงาน เสร็จเรียบร้อยแล้ว u Immediate Database Modification –ข้อมูลที่ได้จากการประมวลผลจะถูกบันทึกลงใน ฐานข้อมูลได้ทันที โดยไม่ต้องรอให้ Transaction นั้นทำงานเสร็จเรียบร้อย

87 87 การกู้ข้อมูลจาก Log File u Deferred Database Modification –จะนำเอาข้อมูลที่บันทึกอยู่ใน Log File ทั้งหมด มาเลือกเฉพาะ Transaction ที่มีการทำงานที่ เสร็จสมบูรณ์ –ได้แก่ Transaction ที่มีรายการครบทั้ง Start และ Commit –เพื่อนำรายการประเภท Update ไปเก็บลงใน ฐานข้อมูล

88 88 การกู้ข้อมูลจาก Log File u Immediate Database Modification –จะนำเอารายการประเภท Activity ของทุก Transaction ที่บันทึกไว้ใน Log File มาบันทึกลง ในฐานข้อมูลใหม่ –ถ้า Transaction มีการทำงานที่เสร็จสมบูรณ์ ค่า ใหม่ของรายการ Update จะถูกบันทึกลง ฐานข้อมูล –ถ้า Transaction มีการทำงานที่ไม่สมบูรณ์ ค่าเดิม ของข้อมูลก่อนการประมวลผลในรายการ Update จะถูกบันทึกลงฐานข้อมูลแทน

89 89 การกู้ข้อมูลแบบ Shadow Paging u เป็นการจัดเก็บข้อมูลเพื่อนำมาใช้ในการกู้ข้อมูล u โดยการกำหนดเนื้อที่ใน Disk ไว้ส่วนหนึ่ง เพื่อใช้ ในการทำสำเนาข้อมูลที่จะถูกเรียกใช้ใน Transaction ไว้ก่อนที่ Transaction นั้นจะเริ่มต้น ทำงาน u ซึ่งเนื้อที่ที่เตรียมไว้สำหรับสำเนาข้อมูลจะเรียกว่า Shadow Page

90 90 การกู้ข้อมูลแบบ Shadow Paging u ข้อมูลที่อยู่ใน Shadow Page จะไม่สามารถ เปลี่ยนแปลงแก้ไขได้ และจะถูกนำมาใช้เมื่อ Transaction ที่ทำงานนั้นมีข้อผิดพลาดเกิดขึ้น u โดยการนำข้อมูลใน Shadow Page มาบันทึกทับ ลงในฐานข้อมูลเดิม u ในกรณีที่ Transaction ทำงานสมบูรณ์ ข้อมูลใน Shadow Page จะถูกยกเลิกไป

91 91 การกู้ข้อมูลแบบ Checkpoints u เป็นการกู้ข้อมูลโดยการใช้ Log File u แต่ในการบันทึกข้อมูลของ Log File จะกระทำเป็น ช่วงแทน u โดยมีการกำหนดจุดเริ่มต้นของ Transaction ที่เริ่ม บันทึกรายการลงใน Log File ที่เรียกว่า จุด Checkpoint ไว้ u เมื่อเกิดมี Transaction ที่ทำงานไม่สมบูรณ์ ก็จะนำ ข้อมูลใน Log File ตั้งแต่จุด checkpoint มา ประมวลผลใหม่

92 92 การกู้ข้อมูลแบบ Checkpoints

93 93 การกู้ข้อมูลแบบ Checkpoints u ทรานแซกชัน T1 เท่านั้น ซึ่งเสร็จสิ้นสมบูรณ์และปลอดภัย เพราะคอมมิต (COMMIT) แล้วก่อนจุดตรวจสอบครั้งสุดท้าย ณ เวลา Tc และข้อมูลได้ถูกเก็บไว้ในฐานข้อมูลจริงแล้ว u ทรานแซกชัน T3,T5 ยังไม่ได้คอมมิตจึงต้องยกเลิก (UNDO) การทำงานทั้งหมด u ทรานแซกชัน T2,T4 คอมมิตแล้ว ถึงแม้ว่าทรานแซกชัน T2 และ T4 จะเสร็จสิ้นสมบูรณ์แล้ว แต่ยังไม่ทันที่ทรานแซกชัน ทำงานเสร็จสิ้นก่อนจุดตรวจสอบเพื่อเคลื่อนย้ายข้อมูลไปสู่ ฐานข้อมูลจริง ก็เกิดปัญหาขัดข้องเสียก่อน ดังนั้นจึงต้องทำซ้ำ (REDO) ทรานแซกชันนั้นใหม่อีกครั้ง

94 94 การกู้ข้อมูลจาก Nonvolatile Storage u เริ่มจากการจัดเก็บข้อมูลทั้งหมดเพื่อไว้ใช้ในการกู้ ข้อมูล u โดยใช้วิธีการสำรองข้อมูล (Backup) ไว้ในอุปกรณ์ ประเภท Stable Storage แทน เช่น การสำรอง ข้อมูลไว้ในเทปแม่เหล็ก u ช่วงเวลาในการทำการสำรองข้อมูล ให้พิจารณา จากความสำคัญและปริมาณของข้อมูลที่เกิดขึ้น

95 95 การกู้ข้อมูลจาก Nonvolatile Storage u การกู้ข้อมูลจะใช้การถ่ายโอนข้อมูลจาก Stable Storage กลับมายัง Nonvolatile Storage ทั้งหมด u แล้วจึงนำเฉพาะ Transaction ที่จัดเก็บไว้ใน Log File และมีการทำงานที่เสร็จสมบูรณ์ มาบันทึกค่า ของข้อมูลตามค่าที่เก็บไว้ในรายการประเภท Update Activity ลงในฐานข้อมูลใหม่

96 96 THE END


ดาวน์โหลด ppt 1 Transaction Management and Concurrency Control.

งานนำเสนอที่คล้ายกัน


Ads by Google