Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and...

96
ﭘﺎﻳﮕﺎه داده ﭘﻴﺸﺮﻓﺘﻪ ﻛﻨﺘﺮل ﻫﻤﺰﻣﺎﻧﻲAdvance Database System Concurrency Control Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University دآ آ داد وازاد اﺱ دا

Transcript of Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and...

Page 1: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

پايگاه داده پيشرفتهكنترل همزماني

Advance Database System

Concurrency Control

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

����� �� ���� دآ� دا����� ����س� آ�����ت

��د� ��� �دا��#�� �زاد اس!�� وا

Page 2: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

تراكنش چيست ؟

.شود نمي اجرا اصال يا شود مي اجرا تمامي به يا كه ، كار منطقي واحد يك �

غير وضيعت در داده پايگاه كه دارد وجود امكان اين تراكنش يك اجرا زمان در�

.گيرد قرار سازگار

سازگارقرار وضعيت در بايستي داده پايگاه تراكنش، يك آميز موفقيت اجراي از پس �

.گيرد

بماند باقي داده پايگاه در بايستي تغييرات تراكنش، يك آميز موفقيت اجراي از پس�

.باشد داشته وجود سيستم خرابي با اگر حتي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 3: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

ويژگي هاي تراكنش

Atomicity -) تجزيه ناپذيري(اتمي بودن �)، مثل اينكه چيزي اتفاق نيافتاده است) RollBack(بازگشت >=هر خطا ( -همه يا هيچي�

Consistency–سازگاري �از يك وضعيت سازگار به يك وضعيت سازگار ديگر�

Isolation–جداسازي �تراكنش ها مستقل از يكديگر اجرا مي شوند �شوند Commitتراكنش ها از يكديگر مخفي هستند تا زمانيكه �

Durability–پايداري �.شد ، اثر آن در بانك باقي مي ماند) Commit(تحت هر شرايطي ، پس از اينكه تراكنش انجام �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 4: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

كنترل همزماني

.تراكنش چند يا دو متوالي غير اجراي يعني همروندي�

همزمان طور به مشترك داده به تا دهد امكان تراكنش چند يا دو به بايد سيستم�

.باشند داشته دستيابي

چند داده ي پايگاه يك در تراكنش چندين همزمان اجراي هماهنگي و كنترل �

.گويند همزماني كنترل را كاربره

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 5: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

مفاهيم مرتبط با كنترل همزماني

: integrity–يكپارچگي �سازگاري و طراحي صحيح�

: security–امنيت �اطمينان از اينكه هر كاربر فقط آنچه را اجازه دارد انجام مي دهد�

: recovery–ترميم �بازگشت به يك وضعيت صحيح بعد از ايجاد يك خطا�

:نكته

دسترسي همزمان هر كدام از موارد فوق را به خطر مي اندازد�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 6: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

كنترل همزماني

:است كنترل همروندي باعث ايجاد سه پيامد منفي عدم �

lost updates -بهنگام سازي گمشده �

uncommitted dependency -استفاده از داده هاي تثبيت نشده �

inconsistent analysis -تحليل ناسازگاري �

:ساير مشكالت �

خواندن غيرقابل تكرار�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 7: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Lost Updates -بهنگام سازي گمشده

تراكنش از بعد بالفاصله تراكنشي ، كه كند مي بروز موقعي مشكل اين�

جديدي مقدار ، بخواهد ، است نوشته اي داده براي را مقداري كه ديگري

.بنويسد ، اده د آن براي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 8: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Lost Updates -بهنگام سازي گمشده

Transaction A A=10 Transaction B

Read (A)

A=10t1

t2Read (A)

A=10

Update A

A=A+10 => A=20t3

t4Update A

A=A+20 => A=30

از دست مي دهد t4يك بهنگام سازي را در زمان Aتراكنش �

.از دست مي رود B، توسط تراكنش t3در زمان Aبهنگام سازي تراكنش �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 9: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Uncommited - استفاده از داده هاي تثبيت نشده Dependency

طور به تراكنش دو كه مي دهد رخ موقعي حالت اين �

بازگشت حالي در اولي و باشند اجرا حال در همزمان

استفاده حال در ، دومي تراكنش كه )Rollback( شود داده

.باشد اولي نشده تثبيت داده هاي از

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 10: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Uncommited - استفاده از داده هاي تثبيت نشده Dependency

Transaction A A=50Transaction B

t1Update A

A=A-10 => A=40

Read(A)A = 40

t2

t3RollBack

A=50

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 11: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Transaction A A=50Transaction B

t1Update t

A=A+10 => A=60

Update tA=A+20 => A= 80

t2

t3RollBack

A=50

Uncommited - استفاده از داده هاي تثبيت نشده Dependency

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 12: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Inconsistent Analysis - تحليل ناسازگاري

بر محاسبه حال در تراكنش يك كه مي دهد رخ موقعي حالت اين �

بهنگام حال در ديگري تراكنش كه حالي در مي باشد داده ها روي

.است داده ها سازي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 13: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Transaction A A=40, B=50, C=30 Transaction B

Read (A)Sum = 40

Read (B)Sum = 90

Read (C)

C=C-10 =>

C= 20

C=20 Write(C)

A=40 Read A

A=50 A=A+10

A=50 Write( A)

Commit

Read (C)C=20

SUM=110, not 120

Inconsistent Analysis - تحليل ناسازگاري

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 14: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Unrepeatable Read - خواندن غيرقابل تكرار

Transaction A A=50 Transaction B

Read (A)A=50

t1

t2Update(A)

A=A-10 => A=40

t3Commit

A=40

Read (A)A=40

t3

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 15: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

دستورات تراكنش

� Begin Tran, End Tran,

Abort(RollBack), Commit

� Write, Read

� Confilict (رد�% �)

� NoConfilict %�رد)�('�م

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 16: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Read/Write Conflict Scenarios: ماتريس عمليات داراي برخورد

به صورت همزمان بر روي داده مشترك در حال اجرا شدن هستند T2و T1تراكنش هاي �

رخ مي دهد) Conflict(باشد ، برخورد Writeيكي از آنها در حال اجراي عمل حداقلهرگاه �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 17: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

كنترل همزماني با استفاده از روش قفل گذاري

قفل�

اجرا حال در تراكنش براي داده يك انحصاري استفاده تضمين�

�T2 اختيار در كه داده اي به نمي تواند T1 باشد داشته دسترسي مي باشد

تراكنش هنگامي كه مي كند آزاد را قفل سپس و داده به دسترسي از پيش را قفل يك مي گيرد بدست تراكنش�

گردد كامل

مي گيرد قرار استفاده مورد ، تراكنش ها ديگر توسط ناسازگار داده هاي شدن خوانده از جلوگيري جهت�

قفل مديريت�

.است تراكنش بوسيله شده استفاده قفل هاي كنترل و دادن اختصاص مسئول�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 18: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Lock Granularity -گرانوليته قفل

نمايش مي دهد كه قفل در چه سطحي استفاده شده است�

:قفل گذاري ممكن است در يكي از موارد زير رخ دهد �در سطح ديتابيس�

كل ديتابيس قفل مي شود�در سطح جدول�

تمام جدول قفل مي شود�در سطح صفحه�

تمام صفحه ديسك قفل مي شود�

ركورد–در سطح سطر �اجازه مي دهد كه تراكنش هاي همزمان به سطرهاي متفاوتي از يك جدول مشترك دستيابي داشته باشند�

در سطح فيلد�ركورد مشترك دسترسي داشته باشند–اجازه مي هد كه تراكنش هاي همزمان به فيلدهاي متفاوتي از يك سطر �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 19: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Field-Level Lock -قفل در سطح فيلد

اجازه مي دهد كه تراكنش هاي همزمان ، به فيلدهاي متفاوتي �

.از سطر مشترك دسترسي داشته باشند

اين نوع از سطح قفل ، بسيار منعطف مي باشد اما باعث سربار �

.زياد مي گردد

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 20: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Shared/Exclusive Locks -قفل هاي اشتراكي و انحصاري

Exclusive - انحصاري قفل� lock

.است كرده قفل را شي كه است تراكنشي براي دسترسي تنها�

.باشد داشته وجود برخورد احتمال كه مي شود استفاده موقعي قفل اين از�

ميزند آن روي بر را قفل اين دهد تغيير را داده اي بخواهد تراكنشي وقتي�

نباشد داده آن روي بر ديگري قفل ، اگر فقط و اگر ، كه مي شود اعطا زماني قفل اين�

Shared- اشتراكي قفل� lock.ننويسد آن روي بر اما بخواند را داده اي بخواهد فقط تراكنش كه مي شود استفاده موقعي قفل اين�

نباشد داده روي بر انحصاري قفل كه مي گردد اعطا زماني قفل اين�

بخواند را داده آن بخواهد فقط كه شرطي به بگذارد اشتراكي قفل ، مشترك داده يك روي بر مي تواند تراكنشي هر�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 21: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Shared/Exclusive Locks -قفل هاي اشتراكي و انحصاري

يك قفل مي تواند از�

) upgraded. (ارتقاء پيدا كندحالت اشتراكي به حالت انحصاري �

)downgraded. (حالت انحصاري به حالت اشتراكي كاهش يابد�

.گردد) DeadLock(قفل كردن ممكن است منجر به مشكلي به نام بن بست �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 22: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Lock Based Protocol - پروتكل قفل گذاري

ماتريس سازگاري قفل�

وجود داده روي حاضر حال در كه هايي قفل با قفل اين كه كند اعطا قفل داده يك به تواند مي زماني تراكنش يك١)

.باشد سازگار دارد،

.بگذارند اشتراكي قفل توانند مي تراكنش تعداد هر داده، يك روي بر٢)

.بگذارد قفل آن روي تواند نمي ديگري تراكنش هيچ كند، اعطا انحصاري قفل داده يك به تراكنشي اگر ولي�

شده اعطا ناسازگار هاي قفل كه زماني تا بماند معلق بايد تراكنش درخواست ،نكند پيدا اعطا اجازه قفلي يك اگر٣)

.شود مي اعطا قفل سپس .شوند آزاد سايرتراكنش، توسط داده روي

Transaction A

Transaction B

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 23: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Intentقفل گذاري

يك نوع قفل است كه توسط تراكنشي درخواست مي شود و پس از �.بررسي عمليات قفل گذاري انجام مي گردد يا رد مي شود

:كه در سطح جدول مطرح مي گردند Intentقفل هاي �

�IX : درخواست قفل گذاريX بر روي تعدادي ازRow ها

�IS : درخواست قفل گذاريS بر روي تعدادي ازRow ها

�SIX : تركيبي است ازS وIX.�S :كل جدول را قفل مي كند.

�IX : درخواست قفل گذاريX بر روي تعدادي ازRow ها

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 24: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

ماتريس سازگاري براي همه حالت هاي قفل گذاري

IS IX S SIX X

IS

IX

S

SIX

X

×

� � �

�×

×

× × × ×

×× ×

× ×

×

×

××

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 25: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

)حل شده ( Lost Updates -بهنگام سازي گمشده

Time Trans A Trans B

1 Retrieve t (get S-lock on t)

2 Retrieve t (get S-lock on t)

3 Update t (request X-lock on t)

4 Wait Update t (request X-lock on t)

5 Wait wait

6 wait waitDeadLock

Page 26: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Time Trans A Trans B

1 Update t (get X-lock on t)

2 Retrieve t (request S-lock on t) -

3 wait -

4 wait -

5 wait Commit / Rollback

(releases X-lock on t)

6 Resume: Retrieve t

(get S-lock on t)

Uncommited - استفاده از داده هاي تثبيت نشده Dependency ) حل شده(

Page 27: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

A=40, B=50, C=30

Time Trans A Trans B

1Retrieve A: (get S-lock)

Sum = 40

2Retrieve B: (get S-lock)

Sum = 90

3 Retrieve C: (get S-lock)

4Update C: (get X-lock)

30 → 20

5 Retrieve A: (get S-lock)

6Update A: (request X-lock)

wait

7

Retrieve C:

(request S-lock)

wait

wait

wait

waitDeadLock

حل شده ( Inconsistent Analysis -تحليل ناسازگاري (

Page 28: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Deadlocks -بن بست

خود مورد نياز شدن داده انتظار آزاد ، در حالتي كه يك تراكنش به �

.تراكنش ديگري و بالعكس باشد بن بست گفته مي شودتوسط

�T1 احتياج به دادهX دارد وT2 احتياج بهY دارد.

هر تراكنش اولين داده اش را در اختيار دارد و سپس در حالت انتظار براي در اختيار گرفتن �

)كه تراكنش ديگري آن را در اختيار دارد ( دومي مي ماند

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 29: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Wait-for -كشف بن بست توسط گراف انتظار

Graph.بن بست مي تواند توسط گراف انتظار كشف شود �

اگر در گراف ، يك حلقه يا دور وجود داشته باشد در اينصورت بن بست �

.وجود دارد

بدون حلقه Wait-forگراف با حلقه Wait-forگراف Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 30: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

زمانبندها

هر ترتيب زماني از اجراي دستورالعمل هاي تراكنش هاي : زمانبندي �

.همروند را زمانبندي مي گويند

هر زمانبند مربوط به مجموعه اي از تراكنش ها بايد شامل همه دستورالعمل هاي �

.همان تراكنش ها باشد

.هر زمانبند بايد ترتيب اجراي دستورالعمل هاي هر تراكنش را حفظ كند�

.هدف يافتن زمانبندهايي است كه سازگاري را براي ما حفظ مي كنند�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 31: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:زمانبندي تراكنش ها

:زمانبندي تراكنش ها

(optimistic)خوش بينانه

(pessimistic)بدبينانه

صحت همرونديدر آخر قبل از نوشتن روي رسانه صحت

عملكرد بررسي مي شود

با شك و ترديد و فقط در صورتي كه صحت و جامعيت بانك اطالعاتي حفظ

.شود اجازه اجرا مي دهد

Page 32: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

رفتار زمانبند •: در مواجهه با عملگر

(execute)اجراي عملگر

(delay)به تاخير انداختن اجراي عملگر

نپذيرفتن عملگر كه منجر به ساقط شدن (reject)تراكنش مي شود

Page 33: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

تقسيم زمانبندي ها •

(conservation):زمانبندي محافظه كار

جراي دستورات تراكنش را به تعويق مي ااندازد و محتاطانه و محافظه كارانه اجراي دستورات را پي مي گيرد تا حتي االمكان

.تراكنش ساقط نشود

(aggressive):زمانبندي بي پروا

اجراي فوري دستورات كه -پرهيز در تاخيرمنجر به ساقط شدن برخي از تراكنش ها مي

.شود

Page 34: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

اجراي همروند تراكنش ها

چرا بايد تراكنش ها همروند اجرا شوند؟�كارايي بهتر�

پس ! در ديسك داراي سرعت پاييني است I/Oمي دانيم عمليات �

سوئيچ كنيم T2است بهتر است كه به تراكنش I/Oمنتظر T1زماني كه

.همچنان مشغول باشد Cpuتا

�System Throughput

�Response Time

T1 T2

R(A)

W(A)

R(B)

W(B)

Commit

R(C)

W(C)

Commit

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 35: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

سريالپذيري: معرفي .يك معيار رسمي براي بررسي صحت است�

در صورتي مي تواند زمانبند سريال ناميده شود Interleavedيك زمانبند �

.كه يكي از نتايج يك زمانيند سريال را توليد نمايد

: فرضيات �

.انفرادي صحيح هستندهمه تراكنش ها به صورت �

.همچنين هر اجراي سريال از آن تراكنش ها هم صحيح هستند�

.يگرنددهمه تراكنش ها مستقل از يك�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 36: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

سريالپذيري: معرفي <مثال>

T1 = { r1(d), w1(d) }

T2 = { r2(a), w2(a) }

- r1(d), w1(d), r2(a), w2(a) :اجراي سريال

T1 T2

- Interleaved اجراي : r1(d), r2(a), w1(d), w2(a)

(زمانبند) T1 T2 T1 T2

T2سپس T1اول : ترتيب اجرا

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 37: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

سريالپذيري: معرفي <مثال>

Given : T1: Add 1 to A

T2: Double A

T3: Display A and set A to 1

A = 0 :مقدار اوليه

<سؤال> چه تعداد پاسخ صحيح مي توانيم بدست آوريم؟

.6 = !3 :پاسخ

T1 - T2 - T3 : A=1

T1 - T3 - T2 : A=1

T2 - T1 - T3 : A=1

T2 - T3 - T1 : A=2

T3 - T1 - T2 : A=4

T3 - T2 - T1 : A=3

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 38: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Interleavedناهنجاري ها در اجراي

زمانبند غيرسريالي، مي تواند خروج هاي شرايط هايي در چه �

.را از يك زمانبند سريالي توليد نمايد ناسازگاري

: حالت است 3شامل Interleavedدر اجراي

�Write-read (WR) conflict

�Read-write (RW) conflict

�Write-write (WW) conflict

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 39: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

WR Conflict (خواندن كثيف)

تغيير يافته، اما هنوز T1مقداري را مي خواند كه توسط T2: وضعيت �

Commit نشده.

چرا اين مشكل بوجود مي آيد؟�

.خروجي نسبت به هر زمانبند سريالي متفاوت است�

T1توسط Aمقدار . پايان پذيرد T2زماني ناسازگاري ايجاد مي شود كه�

.پايان پذيرد T1مي شود،قبل از اينكه خوانده T2مي شود و توسط نوشته

T1 T2

R(A)

W(A)

R(A)

W(A)

R(B)

W(B)

Commit

R(B)

W(B)

Commit

وضعيت هاي ناسازگار

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 40: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

WW Conflict (دوباره نويسي بر روي داده تثبيت نشده)

نويسي مي كند و اين در صورتي است دوباره را Aمقدار T2: وضعيت �

.نوشته شده و هنوز تثبيت نشده T1توسط Aكه مقدار

.هم گفته مي شود Lost updateبه اين حالت �

T1 T2

W(A)

W(A)

W(B)

Commit

W(B)

Commit

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 41: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

يك : به عنوان مثال رزرو بليط در شركت هواپيمايي را در نظر بگيريد �

!!صندلي باقي مانده

�T1 درخواست خريد يك صندلي را اعالم مي كند.T2 هم همين

در . درخواست را اعالم مي كند و عمل خريدش را به پايان مي رساند

.به مشكل بر مي خورد T1اين هنگام

مي بينيم كه نتيجه نهايي مانند هيچكدام از حالت هاي زمانبند سريال �

.نيست

RW Conflicts (خواندن غير قابل تكرار)

T1 T2

R(A=1)

R(A=1)

W(A=0)

W(A)

Error!

Commit

Commit

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 42: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Phantomخواندن

حساب بانكي است و ما مي خواهيم ميانگين حساب آقاي احمدي را بدست آوريم، اگر 3آقاي احمدي داراي

درحين اينكه ما عمل قفل گذاري بر روي تك تك حساب هاي آقاي احمدي را انجام داده ايم و در حال

محاسبه ميانگين حسابهاي اين آقا هستيم، حساب ديگري از ايشان در همان حين ساخته شود و ما پس از

. رخ داده استPhantomمحاسبه ميانگين متوجه چهارمين حساب آقاي احمدي شويم مي گوييم

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 43: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

در زمانبندي 1مثال

�T1 را از $50مي خواهدA بهB انتقال دهد وT2 از % 10مي خواهدA را محاسبه نموده و بهB انتقال

.دهد

.است T2و سپس T1سريالي ابتدا حالت ترتيب اجرا در �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 44: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

در زمانبندي 2مثال

.است T1و سپس T2ترتيب اجرا در حالت سريالي ابتدا �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 45: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

در زمانبندي 3مثال

.دارد) equivalent(برابريدر زمانبندي 1مثال است، اما اين مثال با T2و سپس T1ترتيب اجراي زمانبند زير ابتدا �

.حفظ شده A+Bمجموع مقدار 3و 2، 1در زمانبندهاي Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 46: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

در زمانبندي 4مثال

!!حفظ نشده A+Bحال مي بينيم در زمانبند همروند زير مجموع مقدار �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 47: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

مقايسه اي بين دو نوع زمانبند

T1 T2

R(A)

W(A)

R(B)

W(B)

Commit

R(C)

W(C)

Commit

T1 T2

R(A)

W(A)

R(C)

W(C)

Commit

R(B)

W(B)

Commit

زمانبندي با استفاده از اجراي سريال

اجراي ززمانبندي با استفاده اInterleaved

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 48: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

زمانبندهاي ترميم پذير

Tiداده اي را بخواند كه قبال توسط تراكنش ديگري به نام Tjاگر تراكنش : زمانبند ترميم پذير �

.اعمال شود Tjشدن Commitقبل از بايد Tiشدن Commit.نوشته شده باشد

.شود Commitبالفاصله پس از خواندن T9زمانبند زير قابل بازيابي نيست در صورتي كه �

شده بر ديگر تراكنش هاي Failشود بايد چه كار كرد؟يكي از كارها اين است تأثير تراكنش Failاگر تراكنشي .همروند اعمال شود

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 49: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

Rollbackهاي آبشاري

نمايند،مانند Rollbackكند باعث آن مي شود كه ديگر تراكنش ها هم Failاگر يك تراكنش �)نشده اند Commitدر اين مثال امكان بازيابي وجود دارد چرا كه هنوز تراكنش ها.(مثال زير

.نمايند Rollbackبايد T12و T11كند، T10 failاگر �.شوند Undoاين عمل باعث مي شود بسياري از عمليات انجام شده �

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 50: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

زمانبندهاي فاقد آبشاري

.هاي آبشاري نمي تواند رخ دهد Rollbackدر اينگونه زمانبندها �

.هر زمانبند فاقد آبشار قابل بازيابي است�

.مطلوب است زمانبند ها را محدود نماييم به حالت هاي فاقد آبشار�

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 51: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

مهمترين پروتكلهاي كنترل همروندي را مي توان به :چند گروه تقسيم كرد

(Lock-based)پروتكل مبتني بر قفل •

كاربردي ترين روش كنترل همرونديهر گاه تراكنشي .اين روش بر اساس تخصيص داده ها به تراكنش ها است

بخواهد براي خواندن يا نوشتن به داده اي دسترسي داشته باشد ابتدا مدير قفلدرخواست قفل مناسب با آن دستور را به واحدي به نام

(lock manager) مي دهد.مدير قفل درخواست رسيده را با قفل هايي كه احيانĤ توسط تراكنش هاي

.ديگر روي آن زده شده مقايسه مي كند

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 52: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:سازگاري قفل ها

:دو نوع قفل مرسوم است•

(Binary)باينري -قفل دو حالتي١.

.باز يا است قفل يا داده حالت اين در. ندارد وجود ها داده اشتراك

اجابت داده قفل بودن باز صورت در تنها ها تراكنش درخواست.شود مي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 53: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

(Shared-Exclusive)انحصاري –قفل اشتراكي ٢.

براي باال بردن سطح همروندي تراكنش ها و امكان به اشتراك گذاشتن داده

(x)انحصاري (s)اشتراكي

اشتراكي قفل : ها داده خواندن براي مي نيز ها تراكنش ساير به را داده خواندن و قفل از استفاده اجازه قفل مدير

.دهد

انحصاري قفل :ها داده نوشتن براي.ندارد را داده به دسترسي اجازه ديگري تراكنش هيچ داده قفل شدن باز تا

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 54: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:چند نكته

هر تراكنش قبل از اجراي دستورات خواندن و نوشتن بايد درخواست قفل •.مربوطه را به مدير قفل بدهد

اجراي دستورات١.

(Wait)حالت انتظار –عدم اجراي دستورات ٢.

چندين تراكنش به طور همزمان داده را قفل مي كنند و مي s: قفل •.خوانند

.هيچ تراكنش ديگري نمي تواند هيچ نوع قفلي روي داده بزند: xقفل •

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 55: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:چند نكته

•Si(Q) درخواست قفل اشتراكي روي دادهQ براي تراكنشi

Xi(Q) درخواست قفل انحصاري روي دادهQ براي تراكنشi

Ui(Q) درخواست آزاد شدن قفل روي دادهQ توسط تراكنشi

:دانه بندي قفل گذاري•

دانه بندي ريزترسربار باال - همروندي باال

دانه بندي درشت ترسربار كم–همروندي كم

Granularity

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 56: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:چند نكته

صفحه معموال واحد قفل گذاري كه توسط سيستم عامل انجام مي گيرد •

.است

: (Lock table)جدول قفل•

به منظور پياده سازي واحد مدير قفل

را ... اشتراك داده ها و -نوع قفل ها- وضعيت استفاده تراكنش ها از داده ها

. در هر لحظه نشان مي دهد

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 57: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

-معادل زمانبندي با قفل هاي اشتراكي:مثالانحصاري

S1: r1(A) w1(A)a1 w2(A) w2(B)c2

:حلS2: s1(A) r1(A) x1(A) w1(A) a1 u1(A) x2(A) w2(A)x2

(B) w2(B)u2(A) u2(B) c2

t1

t2

S(A),r(A),x(A),w(A),u(A),a

x(A),w(A),x(B),w(B),u(A),u(B),C

C:commit

A:abort

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 58: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

انحصاري-با قفل هاي اشتراكيS3معادل زمانبندي :مثال

S3:

T3

T4

T5

T6

r(Q)

w(Q)

w(Q)

w(Q)

r(Q)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 59: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:حل

c4 x5 S4: s4(Q) r4(Q) x5(Q) x3(Q) x4(Q) w4(Q) u4(Q)اجابت

x3 w5(Q) u5(Q)c5اجابت

w3(Q) c3 u3(Q) s6(Q) r6(Q) u6(Q) c6

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 60: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:چند نكته

.يك تراكنش بايستي بتواند در صورت نياز قفل خود را تبديل كند•

(upgrade)افزايش درجه قفل•

به منظور تغيير از عمل خواندن به نوشتن xبه sتبديل قفل

(downgrade)كاهش درجه قفل•

به منظور تغيير از عمل نوشتن به خواندن sبه xتبديل قفل

افزايش درجه همروندي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 61: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

(starvation)و قحطي (deadlock)بن بست:به زمانبندي زير توجه كنيد•

t7

t8

x(B)w(B)

s(A)r(A)s(B) انتظار

x(A) انتظار

يك انتظار چرخشي وجود دارد كه هيچ يك نمي توانند كار خود را ادامه t8و t7بين

.اين انتظار چرخشي منجر به وقوع بن بست خواهد شد.دهند

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 62: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

يك راه حل بن بست اين است كه يكي از تراكنش ها را ساقط كنيم تا قفل •

.هايش آزاد شود و ديگري بتواند با گرفتن آن قفل به كارش ادامه دهد

وجود دارد بدين صورت كه مثال يك قحطيدر اين حالت امكان بروز •

را روي داده اي دارد منتظر دنباله اي از xتراكنش كه قصد زدن قفل

روي همان داده مي زنند و اين انتظار به sتراكنش ها بماند كه همگي قفل

.پايان نرسد

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 63: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

two-phase locking (2pl)پروتكل هاي قفل دو مرحله اي

به Aمبلغي را از حساب بانكي T9تراكنش S5مي خواهيم در زمانبندي •

جمع موجودي دو T10تراكنش همروند . منتقل كند Bحساب بانكي

.حساب را محاسبه مي كند

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 64: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

S5: T9

T10

x(A)dec(A,amnt)w(A) u(A) …S(A)r(A)s(B)r(B)

T9

T10 disp(A+B)u(A)u(B)

x(B) inc(B,amnt)w(B)u(B)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 65: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

با وجود اين كه همه قوانين قفل گذاري رعايت شده ولي باز هم نتيجه •

!!نادرست است

يعني ممكن است در زماني كه قفل ما از .مشكل در بازيابي نا همگام است•

A آزاد مي شود تا زمان تغييرB درA تغييراتي داده شود.

به عبارت ديگر تراكنش ها اجازه ندارند به محض تمام شدن كارشان قفل

.روي داده را باز نمايند

تراكنش ها پي در پي پذير: مزايا•

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 66: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

: پروتكل هاي قفل گذاري شامل مراحل زير است

) growing-مرحله رشد:( مرحله اول١.

.اما نمي تواند قفل آزاد كند.تراكنش فقط مي تواند قفل بگيرد

) shrinking-مرحله نقصان يا عقب نشيني:( مرحله دوم٢.

اما نمي تواند قفل جديدي روي .تراكنش فقط مي تواند قفل ها را آزاد كند

.داده اي بگيرد

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 67: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:B2PLپروتكل Basic Two-Phase Locking

تراكنش ها شروع به گرفتن قفل مورد ,در پروتكل قفل دو مرحله اي پايه •

نياز و اجراي دستورات مي كنند و به محض اين كه يكي از تراكنش ها قفلي

.وارد مرحله دوم مي شود كه ديگر نمي تواند هيچ قفلي بگيردآزاد كرد

. اجرا مي شوندتراكنش ها به ترتيب نقطه قفل پي در پي پذير: مزايا •

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 68: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

معادل زمانبندي با قفل دو مرحله اي پايه: مثال

S6:

T9

T10

X(A)dec(A,amnt)w(A)x(B)inc(B,amnt)u(A)

S(A)r(A)w(B)u(B)c

نمي T10بنابراين .به او داده شود Bرا باز نمي كند تا قفل Aقفل داده T9تراكنش

.را قفل كند و كارش به تعويق مي افتدBتواند Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 69: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:C2PLپروتكل Conservative Two-Phase Locking

پروتكل قفل در پروتكل قبلي امكان بروز بن بست وجود داشت بنابراين از •در اين روش هر تراكنش . استفاده مي كنيم دو مرحله اي محافظه كارانه

مي بايست قبل از اجراي اولين دستور اقدام به گرفتن تمامي قفل هاي .مورد نيازش بكند و اگر موفق نشد در صف قرار مي گيرد

عدم امكان بروز بن بست: مزايا•نياز به دانستن تمامي–پايين آمدن همروندي و سرعت : معايب•قفل ها

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 70: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:مثال

T9

T10

S7

x(A)x(B)dec(A,amnt)w(A)inc(B,amnt)u(A)

s(A)

W(B)u(B)c

S(B)r(A)u(A)r(B)disp(A+B)u(B)c

T9

T10

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 71: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:S2PLپروتكل Strict Two-Phase Locking

.از اين پروتكل استفاده مي شود B2PLبراي رفع سقوط آبشاري در مدل • commit(تا بعد از اتمام تراكنش xدر اين پروتكل باز كردن قفل هاي •

بعد از (مي توانند كمي زودتر sاما قفل هاي . به تعويق مي افتد) abortيا .باز شوند) abortيا commitآخرين دستور تراكنش و قبل از

كم كردن پيام ها در –تضمين توام پي در پي پذيري و ترميم پذيري : مزيت•بانك اطالعات

.سخت گيرانه عمل مي كند:معايب•

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 72: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

S5زمانبندي S2PLمعادل :مثال

T9

T10

X(A)dec(A,amnt)w(A)x(B)inc(B,amnt)w(B)c u(A)u(B)

S(A)

T9

T10 R(A)s(B)r(B)disp(A+B)c u(A) u(B)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 73: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

: SC2PLپروتكل در كنار هم استفاده مي شود S2PLو C2PLبراي داشتن دو پروتكل •

استفاده مي S2PLو براي آزاد كردن قفل از C2PLكه براي قفل كردن از .شود

S5براي SC2PLمعادل : مثال•

T9

T10

T9

T10

X(A)x(B)dec(A,amnt)w(A)inc(B,amnt)w(B)c u(A)

s(A)

u(B)

S(B)r(A)r(B)disp(A+B)c u(A) u(B)Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 74: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

معادل زمانبندي را يكبار با قفل باينري و يكبار : مثال.بنويسيد B2PLو رعايت پروتكل s/xبا قفل

S10:

T1

T2

T3

T4

R(Q)

R(A)

R(Q)

W(Q)

R(P)

W(Q)

W(A)

W(P)

R(Q)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 75: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:با استفاده از قفل باينري١.

I1 (Q)r1(Q)I2(A)r2(A)I3(Q)I4(Q)w1(Q)u1(Q)c1 اجابت

r3(Q)I3(P)

R3(P)I2(Q)w3(P)u3(Q)u3(P)c3 اجابت

انتظار

W4(Q)I4(A)

انتظار

بن بست

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 76: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

s/xبا استفاده از قفل ٢.

S1(Q)r1(Q)s2(A)r2(A)s3(Q)r3(Q)x4(Q)x1(Q)s3(P)r3(P)s2

(Q)r2(Q)u2(A)u2(Q)c2 x3(P)w3(P)u3(Q)u3(P) C3 اجابت

w1(Q)u1(Q)c1 اجابت w4(Q)x4(A)w4(A)u4(A)u4(Q) c4

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 77: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

(Graph-based)پروتكل مبتني بر گراف

گراف بانك (مجموعه تمام داده ها به صورت يك گراف جهت دار•.فاقد حلقه در مي آيد) اطالعاتي

در اين پروتكل هر تراكنش اولين قفلش را روي هر داده اي مي تواند بزند •.به شرطي كه پدر همان داده را نيز خودش قفل كرده باشد

آزاد كردن قفل ها در هر زماني مجاز است كه امتياز بزرگي محسوب مي •.شود

.استفاده مي شود s/xدر اين پروتكل از قفل باينري يا •

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 78: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

قفل هاي باينري را به s11در درخت زير زمانبندي :مثال.نشان مي دهد s12صورت زمانبندي

S11: w1(E),w2(D),w1(C),w2(E),w2(F)

A

B C

D E F

Page 79: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

S12: I1(E),w1(E),u1(E),I2(D),w2(D),u2(D),I1(A),I1(C )

W1 (C ),u1(C ),u1(A),I2(A), I2(B),I2(E), w2(E), u2(E),

I2(F),w2(F),u2(F),u2(B),u2(A)

:حل

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 80: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:مزاياي پروتكل مبتني بر گراف•فاقد بن بست –پي در پي پذيري

:معايب•بسياري از داده هايي كه شايد نياز به دسترسي به آنها نيست هم بايستي قفل

.شودسقوط آبشاري–كاهش سطح همروندي –افزايش سربار

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 81: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:پروتكل هاي مبتني بر مهر زماني

.به محض ورود هر تراكنش يك مهر زماني به آن تخصيص داده مي شود

مسلم است كه براي دو .نمايش مي دهيم TS(Ti)را با Tiمهر زماني تراكنش

,ديرتر وارد سيستم شده باشد Tjكه Tjو Tiتراكنش

TS(Ti)<TS(Tj)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 82: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

پروتكل هاي مبتني بر مهر زماني تراكنش ها را به ترتيب مهر زماني آنها به •

.صورت پي در پي پذير اجرا مي كنند

•W-TS(Q) : مهر زماني نوشتن دادهQ كه برابر است با بزرگترين مهر

.نوشته است Qزماني تراكنشي كه به طور موفقيت آميز روي

•R-TS(Q) : مهر زماني خواندنQ كه برابر است با بزرگترين مهر زماني

.را خوانده است Qتراكنشي كه به طور موفقيت آميز

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 83: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:قواعد خواندن-1

:است read(Q)شامل يك دستور Tiفرض كنيد تراكنش •

داده اي را مي خواهد كه Tiآنگاه تراكنش TS(Ti)<=W-TS(Q)اگر ١)مي ) رد( rejectپس دستور رد و تراكنش .مقدارش بعدا نوشته مي شود

.شود

اجرا مي Qآنگاه دستور خواندن تراكنش TS(Ti)>=W-TS(Q)اگر ٢)و مهر Tiبا ماكزيمم بين مهر زماني تراكنش Qشود و مهر زماني خواندن

. مقدار دهي مي شود Qزماني خواندن

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 84: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:قواعد نوشتن-2

:باشد Write(Q)شامل يك دستور Tiفرض كنيد تراكنش •

باشد آنگاه با دستور TS(Ti)<W-TS(Q)يا TS(Ti)<R-TS(Q)اگر ١).مي شود rejectنوشتن تراكنش موافقت نمي شود و تراكنش

Qدر غير اين صورت دستور نوشتن اجرا مي شود و مهر زماني نوشتن ٢).مقدار دهي مي شود TS(Ti)نيز با

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 85: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

تراكنش با مهر زماني كوچكتر

تراكنش با مهر زماني بزرگتر

گراف فاقد حلقه و زمانبندي پي در پي پذير

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 86: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

لبه ها در گراف پي در پي پذيري پروتكل مبتني بر مهر :زماني

اگر هيچ تراكنشي به حالت انتظار نرود اين پروتكل فاقد بن بست خواهد •. بود اما ممكن است ترميم پذير نباشد

را با r1(A),r2(B),r1(B),w1(B),r3(C ),w2(A)زمانبندي: مثال•.و مهر زماني بنويسيد S2PLپروتكل هاي

S1(A)r1(A)s2(B)r2(B)s1(B)r1(B)x1(B)s3(C)r3(C )) الف

c3u3(C )x2(A) انتظار

انتظار

بن بست

Page 87: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

TS(T1)<TS(T2)<TS(T3):مهر زماني)ب

زمان

T3r1(C)

T2 r2(B) w2(A)

T1r1(A) r1(B) w1(B)

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 88: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:روشهاي مديريت بن بست

مجموعه اي از تراكنش ها كه براي هميشه منتظر يكديگر : وقوع بن بست•.باشند

: (ignore)چشم پوشي١.

در عمل احتمال برقراري همه شرايط وقوع بن بست پايين و هزينه مقابله يا

.رفع آن باالست

... در روش چشم پوشي برخورد با بن بست به برنامه نويس يا مدير سيستم يا

.واگذار مي شود

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 89: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

: (Timeout)فرصت٢.تراكنشي كه به .اين روش بن بست را مي شكند و روشي بسيار ساده است

حالت انتظار مي رود فقط براي مدت معيني منتظر مي ماند و بعد ساقط .مي شود

: (prevention)پيشگيري٣.از پروتكل هايي استفاده كرد كه هر تراكنش قبل از شروع به اجرا : مي توان

(SC2PL-C2PL).تمامي قفل هاي مورد نظرش را بگيردبين داده ها ترتيبي در نظر گرفته شود و بر اساس اين ترتيب تراكنش :مي توان

) پروتكل هاي مبتني بر گراف.(ها مجاز به قفل كردن باشند

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 90: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

: (avoidance)اجتناب +.تراكنش ها پيش مي روند و هنگام درخواست داده احتمال وقوع بن بست

.بررسي و از آن اجتناب مي شوديكي از روشها استفاده از مهر زماني مخصوص بن بست است كه سه روش

:داردمنتظر تراكنش )با مهر زماني كمتر(تراكنش پيرتر : (wait-die)روش•

در مقابل تراكنش جوانتر هرگز .جوانتر مي ماند تا قفل مربوطه را آزاد كندممكن است يك تراكنش چندين بار .منتظر نمي ماند بلكه ساقط مي شود

.ساقط شود

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 91: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

: (Wound-wait)وشر•تراكنش جوانتر منتظر .تراكنش پيرتر به جاي انتظار تراكنش جوانتر را مي كشد

.تراكنش پيرتر مي ماند در اين روش بر خالف قبلي تراكنش پيرتر اولويت باالتري دارد و با كشتن

. تراكنش جوانتر اجرا را به دست مي گيرد

ممكن است كمتر منجر به ساقط شدن تراكنش ها شود Wound-waitروش .زيرا از تعداد تراكنش هاي پير كاسته مي شود

در هر دو روش تراكنشي كه ساقط مي شود با همان مهر زماني اصلي و اوليه خود آغاز به كار مجدد مي كند و همين باعث مي شود كه تراكنش جوان

ممانعت از .(پس از چند بار مردن پير محسوب شود و سرويس بگيرد)قحطي

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 92: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

را Qداده Tjدارد و Qدرخواست قفل روي داده Ti:مثال:قفل ناسازگار كرده است

Wait-die Ti منتظر مي ماند.

TS(Ti)<TS(Tj) TS(Ti)>TS(Tj)

Wound-wait

Ti با همانTs شروع.مجدد مي شود

Ti اقدام به كشتنTj مي Tsبا همان Tj - كند

.شروع مجدد مي كندTi منتظر مي ماند.

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 93: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:تشخيص و رفع بن بست

براي تشخيص گرافي به نام گراف انتظار رسم مي كنيم كه در آن گره ها •

در صورتي وجود دارد كه تراكنش Ti Tjتراكنش ها هسند و لبه

Ti منتظرTj باشد.

گراف انتظار با انجام دستورات جديد تراكنش ها و پايان يافتن آنها مرتبا به

تشخيص بن بست با يافتن حلقه در گراف انتظار مشخص .هنگام مي شود

.مي شود و براي رفع آن بايستي حلقه را شكست

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 94: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

معموال سعي مي .براي شكست حلقه بايستي يكي از تراكنش ها قرباني شود•.شود تراكنشي قرباني گردد كه حداقل هزينه را به دنبال داشته باشد

T2 T4

.مي توان يكي از تراكنش ها را به عنوان قرباني ساقط كرد

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 95: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

:مهمترين معيار هاي انتخاب قرباني

.تعداد حلقه هايي كه با ساقط شدن تراكنش شكسته مي شوند•

.حجم كاري كه تا كنون در آن تراكنش صورت گرفته است•

.تعداد به روز رساني هاي انجام شده در آن•

.حجم كاري از تراكنش كه براي اتمام آن باقي مانده است•

بن بست از بين نرود قرباني بعدي را ساقط مي ,اگر با ساقط شدن يك قرباني

.كنيم

Advance Database System lectures, Dr. Mohammad Hossein Nadimi, Faculty of Computer Engineering, Najafabad Branch, Islamic Azad University

Page 96: Advance Database Systemresearch.iaun.ac.ir/pd/nadimiold/pdfs/HomeWork_1295.pdf · T3: Display A and set A to 1 %!ˇ# : : A = 0  SB"#6 .˝ ' B! ˆ ˜ T!45 U˝ H ˛ ˘ %V

با تشكر