بخشی از مقاله

تحمل خطا بوسیله ی کپی برداری پایگاه داده توزیع شده در سیستم نظیر به نظیر با استفاده از رویکرد عامل

 

چکیده

اصطلاح کپی برداری در پایگاه داده توزیع شده به عملیات کپی و نگهداری اشـیاء پایگـاه داده در سیسـتم توزیـع شـده ای اشاره دارد که لحظه ای1، تبادلی 2 و ادغامی 3 هستند. نقص جزئی ممکن است بر عملیات مناسـب مولفـه هـای دیگـر تـاثیر بگذارد، درحالیکه همزمان مولفه های دیگر به طور کامل بی تاثیر بمانند. یک هدف مهم در طراحی چنـین سیسـتم هـایی، ساخت سیستم به روشی است که بتواند به طور خودکار از نقص های جزئی بدون تاثیر جدی بر عملکرد کلی بهبـود یابـد و به عملیات خود به روشی قابل قبول ادامه دهد، درحالیکه تعمیرات همزمان انجام شود. تکنولوژی هـا، معمـاری هـا و روش شناسی هایی که به طور مرسوم برای توسعه ی برنامه های نرم افزاری توزیع یافته استفاده می شوند طیفی از محدودیت ها و موانع را در زمان استفاده برای محیط توزیع شده در مقیاس بزرگ (برای مثال اینترنت)ارائه می دهنـد. همزمـان، آنهـا در ارائه ی درجه ی مطلوبی از قابلیت پیکربندی، مقیاس پذیری و قابلیت سفارشی سازی با شکست مواجه مـی شـوند. بـدین منظور، محققان در حال بررسی طیفی از روش های ابتکاری هستند. امیدوارانه ترین و زیرکانه ترین ایـن روش هـا، آنهـایی هستند که مبتنی بر قابلیت حرکت دادن کد در میان گره های یک شبکه می باشند و از مفهوم کد سـیار بهـره مـی برنـد، جعبه ابزار (تولکیت) عامل را می توان به عنوان پلت فرمی برای تکرار انتخاب کرد. از این رو، این مقاله مبحث تکـرار عامـل را برای پایگاه داده توزیع شده معرفی و مسائل و موضوعات مربوط به استفاده از تکرار عامل را در یک سیستم چنـدعاملی و نیز مسائل اصلی ارتباط عمل، سازگاری خواندن/نوشتن و همزمان سازی حالت را مورد بررسی قرار داد.

کلمات کلیدی:عامل- پایگاه داده نوزیع شده- تحمل خطا- تاخیر زمان- تکرار


-1مقدمه

هدف از اجتماع متقابل انسان و کامپیوتر آسان کردن برنامه های قدرتمند برای استفاده و در عین حال حفظ پتانسیل کامل آنها است. پایگاه داده توزیع شده بر این امر دلالت دارد که یک تک برنامه باید قادر باشد تا به طور شفاف بر روی داده ای که در میان طیفی از پایگاه داده های مختلف که توسط سیستم های مدیریت پایگاه داده مدیریت شده، روی طیفی از ماشین های مختلف اجرا و بوسیله ی گستره ای از شبکه های ارتباطی به یکدیگر متصل می شوند، عملیات انجام دهد، جایی که اصطلاح "به طور شفاف" به معنی آن است که برنامه از یک نقطه نظر منطقی شروع به عملیات می کند، همچنانکه داده ها همه توسط یک سیستم مدیریت پایگاه داده که روی یک ماشین اجرا می شود، مدیریت می شوند. مسئله ی اساسی برای پایگاه داده توزیع شده، کپی برداری است که محل مرجع و تحمل خطا را افزایش می دهد، یعنی اگر یکی از ماشین ها با نقص مواجه شود، یک کپی از داده ها هنوز روی ماشین دیگر در شبکه در دسترس است.کپی برداری روشی کارامد برای افزایش دسترس پذیری مورد استفاده برای اهداف عملکرد و تحمل خطا بوده و از این رو رابطه جایگزینی ثابتی بین سازگاری و کارامدی بوجود می آورد. کپی برداری رایج ترین روش برای مسافرت فروشندگان و گردش و جابجایی کاربران منفصل از شبکه بوده و کاربران سیار را قادر می سازد تا با اطلاعات پایگاه داده کنونی در زمان اتصال آپدیت شده و داده ها را روی یک سرور آپلود کنند. داده ها تولید و سپس کپی برداری (توزیع) می شود.ساخت سیستم نرم افزاری متشکل از عامل سیار به تازگی مورد توجهبسیاری ازمحققان مهندسی نرم افزار قرار گرفته است. یک عامل معمولا به عنوان تک برنامه ی نرم افزاری مستقلی تعریف می شود که از طرف کاربر شبکه اجرا می شود. آن را می توان با داشتن هوش بیشتر یا کمتر و داشتن توانایی یادگیری توصیف کرد. عامل های سیار به عامل های منظم قابلیت حرکت از چندین محل را در شبکه می افزایند. آنها همگام با حرکت در شبکه، از طرف کاربر کارهایی نظیر جمع آوری اطلاعات یا تحویل درخواست را انجام می دهند. این تحرک عمدتا بهره وری هر عنصر محاسبه را در شبکه ارتقاء داده و محیط محاسباتی قدرتمندی ایجاد می کند. دسترس پذیری سیستم با کپی برداری از اشیاء داده در یک سیستم پایگاه داده توزیع شده بهبود می یابد. با وجود این، در طول بروزرسانی ها، پیچیدگی، یکسان نگهداشتن نسخه های کپی شده به سبب خرابی محل ها و شرایط مسیر بین تراکنش های متضاد افزایش می یابد. تحمل خطا و قابلیت اطمینان مسائل کلیدی هستند که باید در طراحی و معماری این سیستم ها مورد بررسی قرار گیرند. از این رو، ما سیستم کپی برداری تحمل خطا را برای پایگاه داده توزیع شده در شبکه نظیر به نظیر (P2P) با استفاده از رویکرد عامل سیار ارائه کردیم.


-2 پیشینه کار

در تحقیقات پیشین، ما سیستم کپی برداری را برای استفاده در محیط P2P ارائه دادیم و اکنون باید مکانیزم تحمل خطا را به آن اضافه کنیم. برای پیاده سازی چنین مکانیزمی، عامل روشی بسیار انعطاف پذیر است. علاوه بر این، مقالات زیادی وجود دارد که سعی داشتند تا عامل را در محیط توزیع شده و مکانیزم های تحمل خطا پیاده سازی کنند. محقق ارزیابی عملکرد عامل مدیریت (MA)4را ارائه می دهد که شامل الگوریتم جستجوی ممنوعه ی تطبیقی(ATS)5 به عنوان هسته ی جستجو می شود .[1] در مقاله ی [2]، آنها یک تحلیل مقایسه ای را برای چندعاملی های متعدد شرکت کننده در عامل های تجاری (Trading Agents)6 مبتنی بر رقابت ارائه می دهند، کلاسیک[3] (Classic)7، تحقیقی است که


یک فوق زمانبند (Metascheduler)8 را برای پلت فرم های گرید (GRID)9 مبتنی بر پروتکل های تعاملسیستم های چندعامله ارائه می دهد. این پروتکل ها از نمونه ای از مدل های اقتصادی برای تعریف تعریف مکانیزم های هماهنگی در اجتماع های عامل بهره می برند. بیایید نگاهی بیاندازیم به مقاله ی .[4] در این مقاله روابط موجود بین محاسبه ی غیردقیق و کنترل تحمل خطا (FTC) مورد تحلیل قرار می گیرد.

-2-1پایگاه داده توزیع شده

یک سیستم پایگاه داده ی توزیع شده شامل مجموعه ای از محل ها (سایت) می باشد که بوسیله ی نوعی از شبکه ی ارتباطی به هم متصل می شوند، که در آن هر محل ،خود یک محل سیستم پایگاه داده کامل است، اما این محل ها برای کار با یکدیگر موافقت کرده اند، به نحوی که یک کاربر در هر محل می تواند به داده های محل دیگر در شبکه دسترسی داشته باشد، دقیقا به مانند زمانی که داده ها همه در محل کاربر ذخیره شده اند. هر محل یک محل سیستم پایگاه داده است. از این رو سیستم پایگاه داده توزیع شده را می توان به عنوان نوعی از مشارکت میان سیستم مدیریت پایگاه داده محلی در سایت های محلی در نظر گرفت: یک مولفه ی نرم افزاری جدید در هر محل از نظر منطقی، یک یک بسط کارکردی است و این ترکیبی از این مولفه ی جدید با سیستم مدیریت پایگاه داده توزیع شده می باشد.

الف. مشکلات سیستم های توزیع شده

مشکلات اصلی در سیستم پایگاه داده توزیع شده را می توان چنین طبقه بندی کرد:

1. پردازش پرس و جو
2. مدیریت کاتالوگ

3. انتشار آخرین به روز رسانی

4. کنترل بازیابی
5. کنترل همزمانی

È. مدیریت شفاف داده های توزیع شده و کپی برداری شده

شفافیت به تفکیک و جداسازی سمنتیک های سطح بالاتر یک سیستم از مسائل پیاده سازی سطح پایینتر اشاره دارد.یک سیستم شفاف ،جزئیات پیاده سازی را از کاربران پنهان می کند . مزیت یک سیستم مدیریت پایگاه داده (DBMS )10 کاملا شفاف سطح بالای پشتیبانی است که برای توسعه ی کپی برداری پیچیده فراهم آورده می شود. یک سیستم در صورتی از کپی برداری پشتیبانی می کند که یک متغیر رابطه ی (relvar)11 ذخیره شده ی مفروض یا به طورکلی تر، یک جزء مفروض از یک متغیر رابطه ی ذخیره ی مفروض بتواند بوسیله ی چند کپی متمایز که در چند محل متمایز ذخیره شده اند، نمایش داده شود. دسترسی کاملا شفاف به معنی آن است که کاربران می توانند پرس و جو را به عنوان توصیف شده در محل مطرح کنند، بدون آنکه به پراکندگی، محل یا کپی برداری داده ها توجه کنند و اجازه دهند که سیستم نگران حل این مسائل باشد.به دلیل عملکرد، قابلیت اطمینان و قابلیت دسترسی، معمولا توزیع داده ها در یک حالت کپی برداری شده در میان ماشین های روی شبکه مطلوب است. چنین کپی برداری به عملکرد کمک می کند، چون نیازهای


گوناگون و متضاد کاربر می تواند به سادگی رفع گردد. با فرض اینکه داده کپی برداری می شود، موضوع مربوط به شفافیتی است که باید مورد بررسی واقع شود که آیا کاربران باید از وجود کپی ها آگاه باشند یا آیا سیستم باید مدیریت کپی ها را در دست داشته باشد یا کاربر باید در زمان وجود یک کپی داده وارد عمل شود. از سوی دیگر، انجام چنین کارهای اجتناب ناپذیری منجر به از دست رفتن بخشی از انعطاف پذیری می شود . این سیستم نیست که تصمیم می گیرید که کپی داشته باشد یا چندکپی باشد داشته باشد، بلکه این کپی برداری کاربر است که این مسائل را تعیین می کند. هر تغییر در این تصمیمات به سبب مطلاحظات مختلف به طور قطع بر برنامه ی کاربر تاثیر گذاشته و از این رو استقلال داده رابه میزان زیادی کاهش می دهد. با توجه به این بررسی ها، مطلوب است که شفافیت کپی برداری به عنوان یک ویژگی استاندارد DBMS فراهم شود. مهم است که شفافیت کپی برداری تنها به وجود کپی ها و نه محل واقعی شان اشاره دارد.

-2-2 فرایندکپی برداری

کپی برداری فرایند کپی کردن داده از یک انبار داده یا سیستم فایل به چند کامپیوتر جهت همزمان کردن داده ها است. کپی برداری پایگاه داده نقش مهمتری را برای برنامه های پایگاه داده ایفا می کند. داده های کپی برداری شده به تازگی بسیار و بسیار مورد توجه قرار گرفته اند. کپی برداری یک روش مقرون به صرفه برای افزایش قابلیت دسترسی است و برای اهداف عملکرد و تحمل خطا به کار می رود و از این رو تقابل ثابت را بین سازگاری و کارایی معرفی می کند. اکتیودایرکتوری، کپی برداری های مالتی مستر دایرکتوری را بین کنترولرهای دامین در یک دامین مفروض فراهم می آورد. کپی دایرکتوری روی کنترولر کش دامین (cash domain controller)12 قابل نوشتن است. این اجازه می دهد تا بروزرسانی ها برای هر کپی از یک دامین مفروض به کار برده شود. سرویس کپی برداری به طور خودکار تغییرات را از یک کپی مفروض به همه ی کپی های دیگر، کپی می کند.کپی برداری حداقل به دو دلیل مطلوب است: نخست آنکه، می تواند به معنای عملکرد بهتر باشد و دوم آنکه می تواند به معنی دسترس پذیری بهتر باشد. زمانی که شیء بروزرسانی می شود، همه ی کپی های آن شیء باید بروزرسانی شوند که مسئله ی انتشار بروزرسانی نامیده می شود. مشکل کپی برداری داده این است که بروزرسانی برای هر شیء منطقی مفروض باید برای همه ی کپی های ذخیره شده ی آن شیء انتشار یابد. محلی که یک کپی از شیء را نگه می دارد ممکن است در زمان بروزرسانی در دسترس نباشد. این مسئله به عنوان طرح کپی اصلی کار می کند. این نشان دهنده ی انحراف از هدف استقلال و خودگردانی محلی است، زیرا یک تراکنش ممکن است هم اکنون با شکست مواجه شود. کپی اصلی یک شیء حتی اگر کپی محلی در دسترس باشد، در دسترس نیست. همه ی انتشار بروزرسانی باید کامل شود.

 

شکل .1 مثالی ازفرایند کپی برداری

در یک سیستم پایگاه کاملا ایزوله، سیستم های جداگانه DBMS بوده یا راهی برای ارتباط آنها هستند. در هر سیستم، پردازش تراکنش های کاربر که به چندین پایگاه داده دسترسی دارند به طور خاص دشوار است، چون هیچ کنترلی بر روی اجرای سیستم مدیریت پایگاه داده یا همان DBMS وجود ندارد و محدودیت های سیستم های کلاینت-سرور در یک محیط توزیع شده در مقیاس اینترنت پدیدار می شوند. سیستم های توزیع شده در کپی برداری جایگزینی برای سیستم های کلاینت-سرور قدیمی ارائه می دهند. برای انکه سیستم پیشنهادی مان به عنوان یک سیستم توزیع شده در کپی برداری برای عملکرد و قابلیت اطمینان سیستم پیاده سازی شود، از ماهیت سیستم های مدیریت پایگاه داده توزیع شده و موازی بهره می بریم. هدف دسترسی شفاف به پایگاه داده توزیع شده روی یک شبکه ی نظیر به نظیر مبتنی بر کپی است. کپی برداری یکی از قدیمی ترین و مهمترین موضوعات در زمینه ی کلی سیستم های توزیع شده است. این عبارت است از فرایند کپی و حرکت دادن داده ها بین پایگاه داده روی یک یا چند سرور مختلف است.

-2-3 سه نوع کپی برداری

سه نوع کپی برداری در پایگاه داده وجود دارد:

1. کپی برداری تصویرلحظه ای (Snapshot)13
2. کپی برداری تبادلی(Transactional)14

3. کپی برداری ادغامی(Merge)15

کپی برداری لحظه ای

کپی برداری لحظه ای ساده ترین شکل کپی برداری است و به سادگی یک "تصویر لحظه ای" از داده روی یک سرور را می گیرد و آن داده را به سرور دیگر حرکت می دهد. این نوع کپی برداری، داده را دقیقا در لحظه ی ظاهر شدن توزیع


می کند و برای بروزرسانی داده مخابره نمی کند. این بهترین روش کپی برداری داده ای است که کمتر تغییر می کند یا به آپدیت ترین مقادیر نیاز ندارد

کپی برداری تبادلی

کپی برداری تبادلی شامل کپی داده از انتشار دهنده به مشترکان در زمان تحویل تراکنش ها به مشترکان می شود. این نوع کپی برداری به کپی برداری پویا معروف است و معمولا در محیط های سرور به سرور استفاده می شود. این کپی برداری نیازمند ان است تا رکود کمی بین تغییرات زمان در انتشاردهنده ایجاد شود و این تغییرات به مشترک برسند. یک تصویر لحظه ای اولیه از داده برای مشترک به کار برده می شود و زمانی که تغییرات داده در انتشارکننده صورت می گیرد، تراکنش های دریافت و به مشترک انتشار می یابند.

کپی برداری ادغامی

کپی برداری ادغامی فرایند توزیع داده از انتشار دهنده به مشترک است و این امکان را به انتشاردهنده و مشترک می دهد تا در حالی که به شبکه وصل هستند یا نیستند داده ها را بروزرسانی کنند. این معمولا در محیط های سرور به کلاینت استفاده می شود و مناسب جایی است که چند مشترک ممکن است داده ای را در زمان های مختلف بروزرسانی کنند هر مشترک به بخش مختلفی از داده ها دسترسی دارد، از این رو ممکن است تضادهایی رخ دهد. کاربران باید توانایی تشخیص و حل آنها را داشته باشند.

-3عامل ها

یک عامل عبارت است از محاسبه ای که ممکن است روی شبکه از محلی به محل دیگر جابجا شود. ما مفاهیم عامل ها، خدمات عامل، ابزاردان ها (suitcases )16 و رهنمود ها (briefings )17 را به طور اجمالی بررسی می کنیم. یک ابزاردان عبارت است از قطعه ای از داده که یک عامل با خود حمل می کند و از محلی و به محل دیگر حرکت می دهد. این شامل حافظه ی بلندمدت عامل می شود. همچنین ممکن است دربردارنده ی فهرستی از محل ها برای بازدید، برنامه ها برای انجام در هر محل و نتایج انجام آن برنامه ها باشد. یک رهنمود داده ای است که یک عامل به هنگام ورود به هر محل دریافت می کند. این ممکن است شامل توصیه ای برای عامل باشد و هر گونه داده وابسته به محل نظیر سیستم ها و پایگاه های فایل محلی باشد. عامل ها در سیستم های کامپیوتری اغلب سیار هستند. توانایی نقل مکان، ابزاری برای عامل های سیار جهت غلبه بر مشکل رکود بالا یا پهنای باند محدود فعل و انفعالات مرسوم کلاینت سرور بوسیله ی حرکت محاسبت هایشان برای منابع یا سرویس های موردنیاز فراهم می آورد. نقل مکان همچنین ابزاری برای حفاظت از داده فراهم می آورد.. در نتیجه، تحقق قابلیت همکاری بین سیستم های ناهمگون چندعامله اگر نه غیرممکن اما دشوار است. بسیاری از پلت فرم های چندعامله از تحرک ضعیف پشتیبانی می کنند.اغلب سیستم های عامل در رأس ماشین مجازی جاوا (JVM)18 پیاده سازی می شوند که مکانیزم های اساسی تسلسل شیء را برای پیاده سازی تحرک ضعیف فراهم می آورند. JVM مکانیزم هایی برای سروکار داشتن با حالت اجرا ارائه نمی دهد.

.A اجلت های جاوا (Java Aglets)19

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید