فصل سوم: تکنیک های کنترل همروندی
مقدمه. 22
3-1- تکنیک های کنترل همروندی و انواع آن ها 22
3-2- تکنیک های قفل گذاری و انواع آن ها 23
3-2-1- تعریف قفل. 24
3-2-2- اندازه های واحد قفل شدنی. 24
3-2-3- ساختار قفل. 25
3-2-4- مثالی برای لزوم قفل گذاری.. 26
3-2-5- مدیر قفل و مراحل انجام شده برای قفل گذاری.. 27
3-2-6- نحوه در اختیار قرار دادن قفل توسط مدیر قفل. 28
3-2-7- قفل چند اسلوبی. 28
3-2-7-1- ماتریس همایندی یا سازگاری قفل های چند اسلوبی. 28
3-2-7-2- پروتکل قفل چند اسلوبی برای یک تراکنش.. 29
3-2-7-3- تغییر قفل. 30
3-2-7-4- قفل چند اسلوبی و توالی پذیری.. 30
3-2-7-5- خصوصیات قفل چند اسلوبی. 30
3-2-8- تکنیک قفل گذاری دو مرحله ای مبنایی. 30
3-2-8-1- مشکلات تداخل کنترل نشده 31
3-2-8-2- خصوصیات و مشکلات 2PL مبنایی. 32
3-2-8-3- تغییر قفل در پروتکل 2PL. 33
3-2-8-4- تأثیرعملیات درج در کنترل همروندی.. 33
3-2-8-5- تأثیرعملیات حذف در کنترل همروندی.. 33
3-3- بن بست.. 34
3-3-1- راه حل های مشكل بن بست.. 35
3-3-2- تکنیک های زمان مهر. 36
3-3-2-1- الگوریتم WD.. 37
3-3-2-2- الگوریتم WW… 37
3-3-2-3- خصوصیات الگوریتم WD و WW… 37
فصل چهارم: شبکه های پتری
مقدمه. 39
4-1- مختصری در مورد شبکه های پتری.. 39
4-2- تفاوت UML و پتری.. 39
4-3- تاریخچه شبکه های پتری.. 40
4-4- ویژگی های شبکه های پتری.. 40
4-5- اجزای شبکه ی پتری.. 40
4-5-1- تعریف اجزای شبکه ی پتری.. 41
4-5-2- وظایف اجزای شبکه ی پتری.. 41
4-6- تعریف چهارگانه شبکه های پتری.. 42
4-7- گراف شبکه پتری.. 42
4-8- چند مثال از گراف شبکه پتری.. 43
4-9- رفتار شبکه های پتری.. 43
4-10- گذار توانا 44
4-11- مثالی از اجرای یک شبکه پتری.. 44
4-12- قوانین مربوط به فایر شدن گذار، در شبکه پتری.. 45
4-13- شبکه های پتری به بن بست رسیده، زنده و غیر زنده 46
4-14- انواع شبکه های پتری و نحوه ی نشانه گذاری آن ها 47
4-15- فلوچارت ها و شبکه های پتری.. 47
4-16- انواع پتری.. 48
4-16-1- شبکهپتری رنگی. 48
4-16-2- شبکه پتری زمانی. 49
4-16-3- شبکه پتری سلسله مراتبی. 50
فصل پنجم: نحوه ی مدل سازی مکانیزم های 2PL، WW و WD با پتری رنگی
مقدمه. 52
5-1- مختصری در مورد مدل سازی مکانیزم های 2PL، WW و WD.. 52
5-1-1- مدل 2PL. 52
5-1-2- مدل های WW و WD.. 53
5-2- مجموعه های رنگ… 53
5-2-1- مجموعه های رنگ در مدل 2PL. 53
5-2-2- مجموعه های رنگ در مدل های WW و WD.. 54
5-2-3- توضیحات مجموعه های رنگ… 55
5-3- نشانه گذاری اولیه. 58
5-3-1- نشانه گذاری اولیه در مدل 2PL. 58
5-3-2- نشانه گذاری اولیه در مدل های WW و WD.. 59
5-3-3- توضیحات نشانه گذاری اولیه. 59
5-4- متغیرها 61
5-4-1- متغیرهای مدل 2PL. 61
5-4-2- متغیرهای مدل های WW و WD.. 62
5-5- شرح توابع مدل و عملکردهای آن ها 62
5-5-1- شرح توابع مشترک بین مدل های 2PL، WW و WD.. 63
5-5-2- شرح توابع مدل 2PL. 63
5-5-3- شرح توابع مدل های WW و WD.. 76
5-6- اولویت های معین شده برای تعیین فایر شدن گذار مورد نظر از بین گذارهای فعال. 72
5-7- نحوه ی مدل سازی ها 73
5-7-1- نحوه مدل سازی مدل 2PL. 73
5-7-2- نحوه مدل سازی مدل های WW و WD.. 75
فصل ششم: ارزیابی مدل های 2PL، WW و WD
مقدمه. 79
6-1- مختصری در مورد اهمیت ارزیابی پایگاه دادهها 79
6-2- پارامتر تعداد تراکنش های وارد شونده به سیستم 80
6-2-1- بررسی مدل 2PL. 80
6-2-2- بررسی مدل WW. 80
6-2-3- بررسی مدل WD.. 81
6-2-4- مقایسه ی مدل های 2PL، WW و WD براساس پارامتر تعداد تراکنش ها 82
6-3- پارامتر تعداد دستورات هر تراکنش.. 83
6-3-1- بررسی مدل 2PL. 83
6-3-2- بررسی مدل WW… 84
6-3-3- بررسی مدل WD.. 85
6-3-4- مقایسه مدل های 2PL، WW و WD براساس پارامتر تعداد دستورات تراکنش ها 86
6-4- پارامتر تعداد داده های مشترک و غیر مشترک تراکنش ها 88
6-4-1- بررسی مدل 2PL. 88
6-4-2- بررسی مدل WW… 89
6-4-3- بررسی مدل WD.. 90
6-4-4- مقایسه مدل های 2PL، WW و WD براساس پارامتر تعداد داده های مشترک و غیر مشترک تراکنش ها 91
6-5- پارامتر تعداد داده های مشترک در تراکنش هایی بدون داده غیر مشترک.. 92
6-5-1- بررسی مدل 2PL. 92
6-5-2- بررسی مدل WW… 93
6-5-3- بررسی مدل WD.. 94
6-5-4- مقایسه مدل های 2PL، WW و WD براساس پارامتر تعداد داده های مشترک در تراکنش هایی بدون داده غیر مشترک.. 96
6-6- نتیجه گیری.. 97
6-7- پیشنهادات.. 100
مراجع. 102
فهرست جدول ها
عنوان جدول صفحه
جدول1-1- پارامترهای مورد نظر برای ارزیابی مدل ها در این پایان نامه. 4
جدول2-1- آزمایش های مورد نظر برای ارزیابی مدل ها در این پایان نامه. 18
جدول 3-1- مزایا و معایب اندازه ی واحد قفل شدنی. 25
جدول 3-2- نمایش لزوم قفل گذاری.. 26
جدول 3-3- نمایش ناحیه کاری.. 27
جدول 3-4- ماتریس همایندی.. 29
جدول 3-5- سازگاری قفل های چند اسلوبی. 29
جدول 5-1- توضیحات مربوط به مجموعه های رنگی. 55
جدول 5-2- توضیحات مربوط به نشانه گذاری های اولیه. 60
جدول 5-3- پارامترهای ورودی تابع checklock برای مدل 2PL. 64
جدول 5-4- پارامترهای خروجی تابع checklock برای مدل 2PL. 65
جدول 5-5- پارامترهای ورودی تابع checklock برای مدل های WW و WD.. 68
جدول 5-6- پارامترهای خروجی تابع checklock برای مدل های WW و WD.. 69
جدول6-1- تعداد گام های اجرای دو، سه، پنج، ده و پنجاه تراکنش در مدل 2PL. 80
جدول 6-2- تعداد گام های اجرای دو، سه، پنج، ده و پنجاه تراکنش در مدل WW… 81
جدول 6-3- تعداد گام های اجرای دو، سه، پنج، ده و پنجاه تراکنش در مدل WD.. 82
جدول 6-4- تعداد گام های اجرای تراکنش های کوچک و بزرگ در مدل 2PL. 84
جدول 6-5- تعداد گام های اجرای تراکنش های کوچک و بزرگ در مدل WW… 85
جدول 6-6- تعداد گام های اجرای تراکنش های کوچک و بزرگ در مدل WD.. 86
جدول 6-7- تعداد گام های اجرای تراکنش ها با تعداد کم و زیاد داده های غیر مشترک در مدل 2PL. 88
جدول 6-8- تعداد گام های اجرای تراکنش ها با تعداد کم و زیاد داده های غیر مشترک در مدل WW… 89
جدول 6-9- تعداد گام های اجرای تراکنش ها با تعداد کم و زیاد داده های غیر مشترک در مدل WD.. 90
جدول 6-10- تعداد گام های اجرای تراکنش هایی بدون داده غیر مشترک، با تعداد کم و زیاد داده های مشترک در مدل 2PL. 92
جدول 6-11- تعداد گام های اجرای تراکنش هایی بدون داده غیر مشترک، با تعداد کم و زیاد داده های مشترک در مدل WW.. 93
جدول 6-12- تعداد گام های اجرای تراکنش هایی بدون داده غیر مشترک، با تعداد کم و زیاد داده های مشترک در مدل WD.. 95
فهرست شکل ها
عنوان شکل صفحه
شکل 3-1- عملیات مدیر قفل و مدیر تراکنش.. 27
شکل 3-2- پروتکل 2PL و لحظه قفل. 31
شکل 3-3- نمونه ای از نحوه رخ دادن بن بست.. 34
شکل 3-4- مثال برای بن بست.. 35
شکل 4-1- اجزای شبکه ی پتری.. 40
شکل 4-2- عملکرد اجزای شبکه پتری.. 41
شکل 4-3- گراف شبکه پتری.. 42
شکل 4-4- مثال سیستم عابر بانک با گراف شبکه پتری.. 43
شکل 4-5- مثال تابع y=f(x) با گراف شبکه پتری.. 43
شکل 4-6- مثالی از نشانه گذاری یک مکان. 43
شکل 4-7- مثالی برای یک گذار توانا و یک گذار غیر توانا 44
شکل 4-8- مثالی از اجرای یک شبکه پتری و نشانه گذاری اولیه آن. 44
آن. 45
آن. 45
آن. 45
شکل 4-12- مثالی از گراف شبکه پتری، قبل و بعد از فایر شدن. 46
شکل 4-13- مثالی از گراف شبکه پتری، قبل و بعد از فایر شدن. 46
شکل 4-14- یک شبکه پتری که دچار بن بست شده 46
شکل 4-15- انواع شبکه های پتری و نحوه ی نشانه گذاری آن ها 47
شکل 4-16- مدل سازی گره های تصمیم گیریِ فلوچارت با شبکه پتری.. 47
شکل 4-17- مدل سازی فلوچارت با شبکه پتری.. 48
شکل 4-18- شبکه پتری سلسله مراتبی. 50
شکل 4-19- مدل سازی مسئله ممانعت دو جانبه با شبکه پتری.. 50
شکل 5-1- ماژول سطح بالا از مدل 2PL به صورت سلسله مراتبی، برای سه تراکنش.. 73
شکل 5-2- ماژول سطح بالا از مدل 2PL به صورت سلسله مراتبی، برای دو تراکنش.. 74
شکل 5-3- ماژول مربوط به تراکنش T1 از مدل 2PL به صورت سلسله مراتبی. 74
شکل 5-4- ماژول سطح بالا از مدل های WW و WD به صورت سلسله مراتبی، برای سه تراکنش.. 75
شکل 5-5- ماژول مربوط به تراکنش T1 از مدل های WW و WD به صورت سلسله مراتبی، برای سه تراکنش 76
شکل 5-6- ماژول سطح بالا از مدل های WW و WD به صورت سلسله مراتبی، برای دو تراکنش.. 77
شکل 6-1- مقایسه تعداد گام های اجرای دو، سه، پنج، ده و پنجاه تراکنش در مدل های 2PL، WW و WD.. 82
شکل 6-2- مقایسه تعداد گام های اجرای تراکنش های کوچک در مدل های 2PL، WW و WD.. 87
شکل 6-3- مقایسه تعداد گام های اجرای تراکنش های بزرگ در مدل های 2PL، WW و WD.. 87
شکل 6-4- مقایسه تعداد گام های اجرای تراکنش ها با تعداد کم و زیاد داده های غیر مشترک در مدل های 2PL، WW و WD.. 91
شکل 6-5- مقایسه تعداد گام های تراکنش ها با تعداد کم و زیاد داده های مشترک (بدون داده غیر مشترک) در مدل های 2PL، WW و WD 96
فصل اول
مقدمه
1-1- مقدمه
اجرای همروند تراکنش ها در پایگاه داده ها با مشکلات بسیاری مواجه است. مکانیزم های کنترل همروندی، برای حفظ انزوا و عدم دخالت اجرا در میان تراکنش های متعارض و حفظ سازگاری پایگاه داده ها استفاده می شوند (a-Pashazadeh, 2012)، (b-Pashazadeh, 2012) و (Shu, and Young, 2002). به عبارت دیگر الگوریتم های کنترل همروندی، الگوریتم هایی هستند که باعث می شوند اجرای همروند چند تراکنش و اجرای متوالی آن معادل شود. مسئله ی كنترل همروندی در پایگاه دادهها امری ضروری و با اهمیت میباشد (Shu, and Young, 2002). در این زمینه مطالعات و تحقیقات فراوانی صورت گرفته است كه نتیجه ی آن، به وجود آمدن الگوریتم های متنوع كنترل همروندی میباشد. همچنین با توجه به گسترش روزافزون انواع پایگاه داده ها در سراسر جهان، نیاز به بررسی پروتکل های کنترل همروندی پایگاه داده ها، بیشتر نمایان می شود.
مدل سازی رسمی[1] از الگوریتم های کنترل همروندی در مطالعه ویژگی های مختلف آن ها بسیار مفید است (a-Pashazadeh, 2012) و (b-Pashazadeh, 2012). بررسی ها نشان می دهد که شبکه های پتری (PNs)[2] روش مناسبی برای مدل سازی رسمی مکانیزم های کنترل همروندی می باشند. شبکه های پتری انواع مختلفی دارند که یکی از آن ها شبکه پتری رنگی (CPN)[3] است. شبکه های پتری رنگی یکی از بهترین ابزارها برای مدل سازی الگوریتم های کنترل همروندی هستند (a-Pashazadeh, 2012) و (b-Pashazadeh, 2012). به همین دلیل در این پایان نامه نیز از این روش برای مدل سازی ها استفاده خواهد شد.
یکی از اصلی ترین مکانیزم های کنترل همروندی تکنیک قفل گذاری دو مرحله ای مبنایی (2PL)[4] است. این تکنیک کنترل همروندی از طریق قفل گذاری روی داده ها انجام می شود. قفل گذاری روی داده ها به تدریج که نیاز به دستیابی به آن ها پیش می آید صورت می گیرد و قفل گشایی از آن ها پس از دریافت تمام قفل های تراکنش رخ خواهد داد. در این تکنیک امکان رخ دادن بن بست وجود دارد، به همین دلیل دو مکانیزم پیش گیری از بن بست نیز مورد بررسی قرار خواهد گرفت.
مکانیزم منتظر گذاشتن-میراندن (WD)[5] یکی از الگوریتم های پیش گیری از بن بست است که در آن حق تقدم زمانی تراكنش ها براساس زمان مهر و لحظه ی ورودشان به سیستم رعایت نمی شود. یعنی در مکانیزم WD هیچ قانونی وجود ندارد که تراکنشی که زودتر وارد سیستم شده است اولویت بیشتری برای زودتر دریافت کردن قفل های مورد نیازش داشته باشد، به همین دلیل به آن الگوریتم نابازدارنده می گویند. در سمت مقابل، مکانیزم زخمی كردن-منتظر گذاشتن (WW)[6] وجود دارد که یکی از الگوریتم های پیش گیری از بن بست است که در آن حق تقدم زمانی تراكنش ها براساس زمان مهر و لحظه ورودشان به سیستم رعایت می شود. یعنی در مکانیزم WW تراکنشی که زودتر وارد سیستم شده است اولویت بیشتری برای زودتر دریافت کردن قفل های مورد نیازش دارد، به همین دلیل به آن الگوریتم بازدارنده می گویند.
در این پایان نامه تلاش بر این است که با مدل سازی مکانیزم های 2PL، WD و WW، امکان بررسی اجرای تراکنش ها از دیدگاه ها و جوانب مختلفی را فراهم کنیم. سپس به ارزیابی این الگوریتم ها بپردازیم و آن ها را با استفاده از پارامترهای مختلفی که در جدول 1-1، اشاره شده است بررسی کنیم. در این جدول، در ستون اول پارامترهایی که قرار است ما در این پایان نامه بر اساس آن ها مدل ها را ارزیابی کنیم مشاهده می شود. سپس در ستون های بعدی نام الگوریتم هایی که قبلاً توسط این پارامترها مورد ارزیابی قرار گرفته بوده اند، نحوه ی پیاده سازی یا مدل سازی آن ها و همچنین مراجعشان را مشاهده می کنید.
جدول1-1- پارامترهای مورد نظر برای ارزیابی مدل ها در این پایان نامه
پارامتر |
الگوریتم(ها) |
پیاده سازی یا مدل سازی |
مرجع |
تعداد تراکنش های وارد شونده به سیستم |
مقایسه یک الگوریتم امن و یک الگوریتم غیر امن برای پایگاه داده های بلادرنگ |
پیاده سازی در مقیاس کوچک |
(Hedayati, Kamali, Shakerian and Rahmani, 2010) |
اندازه هر تراکنش (تعداد دستورات هر تراکنش) |
الگوریتم مرتب سازی زمان مهر پایه ای |
مدل سازی توسط مدل مارکف |
(Singhal, 1991) و
(روحانی رانکوهی، 1386)
|
تعداد داده های مشترک و غیر مشترک تراکنش ها |
یک مکانیزم بر اساس قفل دو مرحله ای |
پیاده سازی در مقیاس کوچک |
(Al-Jumah, Hossam, and El-Sharkawi, 2000) |
تعداد داده های مشترک در تراکنش هایی بدون داده غیر مشترک |
یک مکانیزم بر اساس قفل دو مرحله ای |
پیاده سازی در مقیاس کوچک |
(Al-Jumah, et al., 2000) |
در هنگام مدل سازی یک مطالعه موردی ساده به عنوان مثال برای درک بهتر ارائه گردیده است. مثال ذکر شده شامل سه تراکنش و دو منبع است.
مدل سازی ها با استفاده از پتری رنگی و نرم افزار CPN Tools ارائه شده اند. در نهایت به ارزیابی هر سه الگوریتم پرداخته شده است و الگوریتم ها با معیارهای بیان شده در فوق مورد بررسی قرار داده شده اند. آزمایش ها چندین بار تکرار گردیده و از مقادیر میانگین گیری به عمل آمده است. نمودارهای لازم نیز جهت مقایسه ی آسان تر ترسیم و بررسی گردیده اند.
1-2- ساختار پایان نامه
این پایان نامه به فرم زیر سازماندهی شده است.