- lost update
ผลลัพธ์สุดท้าย คือ A = 60 เืสมือนว่า transaction t1 ไม่ได้เกิดขึ้นเลยT1 T2 read A= 30 read A = 30 A = A + 1 A = A * 2
ปัญหาข้อนี้ ถือว่า ไม่ conflict serializable - uncommitted dependency
ตัวอย่างT1 T2 update(A) read(A) rollback
จะเห็นว่า ค่าที่ T1 read ขึ้นไปเป็นค่าที่ผิดพลาดเพราะว่า T2 roll back - inconsistent analysis
ตัวอย่างเช่น T1 เป็นการ sum ค่าทั้งหมดT1 T2 read sum(30) = A(30) read sum(50) = sum + B(20) read A = 30 A = A(30) - 10 C = C(50) + 10 read sum(110) = sum + c(60)
จะเห็นว่า ผล sum ที่ได้ผิดไป
ปัญหานี้คือว่า ไม่เป็น conflict serializable - phantom phenomenon จะคล้ายกับ inconsistency analysis problem แต่เป็นปัญหาเนื่องจาก การ insert ข้อมูลเข้าไประหว่างการคำนวณไม่ใช่การ update (ความแตกต่างของ inconsistency analysis problem กับ phantom phenomenon คือ inconsistency analysis problem เป็น conflict serializable แต่ phantom ไม่เป็น conflict serializable)
Concurency Control: Basic Problem
ปัญหาของ concurrency control โดยทั่วไปมีดังนี้
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment