Download presentation
Presentation is loading. Please wait.
1
Fault Tolerant Broadcast
Advanced Operating Systems Sharif University of Technology Lecturer: Dr. R.Jalili
2
مقدمه طراحي و وريف کاربردهاي توزيع شده متحمل خطا به عنوان يک کار پيچيده تلقي مي شود. پديدههايي که براي ساده سازي اين کار مطرح شدهاند شامل اجماع (Consensus ) و چند نوع Reliable Broadcast است. اجماع (Consensus): امکان رسيدن پردازهها به يک تصميم مشترک که براساس وروديهاي اوليه و عليرغم خطا اخذ ميشود. کاربردها: انتخاب رهبر و يا توافق روي مقدار يک سنسور تکرار شده. پخش همگاني (Reliable Broadcast): پخش همگاني در خيلي از کاربردهاي لازم است تا همه روي پيغامهاي تحويل گرفته توافق داشته باشند. يا روي ترتيب پيغامها توافق داشته باشند.
3
مقدمه - ادامه برمبناي اين پديدهها، کاربردهاي زير مطرح هستند: SIFT، Isis، Psync، Amoeba، Delta-4، Transis، HAS، FAA و Atomic Commitment کلا تحقيقات زيادي انجام شده است ولي فرضيات و علامتگذاري متفاوت مانع از همسازي آنهاست. براي بيان دقيق و ساده مطالب: خط دقيق و مشخصي بين Specification و Algorithm کشيده ميشود. استفاده زياد از مفهوم Reduction بين مسائل، درنتيجه کلاسهبندي مسائل براساس پيچيدگيشان. امکان ارائه Specification وAlgorithm با يک بيان خيلي سطح بالا
4
مدل محاسبات توزیعشده در حضور خطا
مدل ارتباطي: Message-Passing از بين دو مدل مرسوم Message-Passing و Shared Memory موارد: همگامي پردازهها و ارتباطات نوع خطاي پردازهها نوع خطاي ارتباطي همبندي شبکه مشخص يا تصادفي بودن پردازهها
5
همگامی: قابل اعمال هم در مورد پردازهها و هم سيستم ارتباطي
سيستمي را همگام گوئيم (در اين بخش) که شرايط زير را برآورده کند. محدوده بالا (مشخص) مثل براي تأخير پيغامها وجود داشته باشد (ارسال، انتقال، دريافت). هر پردازه P ساعت محلي Cp دارد که حداکثر اختلاف را با ساعت واقعي دارد. براي همه پردازه هاي P و همه tt: يک سقف و يک کف براي زمان اجراي يک مرحله از کار توسط يک پردازه وجود دارد. بنابراين ميتوان Time-Out را براي هر پيغام اندازه گرفت. روشي براي تشخيص خطا
6
همگامی – ادامه: همچنين ميتوان ساعتهاي تقريبا همگام را پيادهسازي کرد. يعني ساعتهايي که علاوه بر محدودبودن فاصله آنها با ساعت واقعي (Drift)، شرط زير را برآورده ميکنند: چنين ساعتهايي، حتي در حضور خطا هم ميتوانند پيادهسازي شوند. کاربرد ساعتهاي تقريبا همگام (Approximately Sync.): کنترل فرآيندهاي بيدرنگ، مديريتفايل، سازگاري Cache، Authentication ... . در خيلي از مسائل نيز ميتواند ساعتهاي واقعي را شبيهسازي کند يعني =0 و لذا طرح الگوريتم توزيع شده را آسان ميکند.
7
سیستم ناهمگام سيستمي ناهمگام خوانده ميشود اگر محدودهاي براي تاخير پيغامي، Clock Drift، زمان اجراي يک مرحله از يک کار وجود نداشته باشد. هيچ فرضي در مورد Timing وجود ندارد. توجه: همگامي و ناهمگامي دو حد افراطي براي سيستمهاي واقعي هستند. مثلا روي بخشي از ويژگيها (تاخير، Drift، ...) محدوديت وجود دارد و روي بخشي نه.
8
خطای پردازه مدلهاي خطا براي پردازه شامل:
Crash Send Omission Receive Omission General Omission Byzantine(نامعلوم) نامعلوم همراه با Message Authentication رفتار اختياري پردازه ولي مکانيزمي براي Authentication پيغامها وجود دارد. يعني پردازه خطادار نميتواند که از فلان پردازه درست پيغام دريافت کرده است حتي اگر چنين پيغامي ارسال نشده باشد. اين دسته از خطا هم در مورد سيستمهاي همگام و هم سيستمهاي ناهمگام مطرح هستند. معهذا، خطاهاي زماني تنها در مورد سيستمهاي همگام مورد دارند.
9
خطای پردازه – ادامه: پردازهاي را درمعرض خطاهاي زماني (Timing) ميدانيم که به يکي از روشهاي زير خطا کند: خطاهاي General Omission را تاييد کند (مرتکب شود). Drift ساعت محلياش از محدوده مشخص شده تجاوز کند. محدوده زماني لازم براي اجراي يک مرحله از کاري را نقض کند. از لحاظ جدي بودن: General Omission < Timing < Byzantine به نوع خطاهايي که جديتر از خطاي Timing نباشند Benign (ملايم) گويند:: پردازهها رفتار اختياري ندارند و يا پيغام غيرپيشبيني شدهاي در الگوريتم را نميفرستند.
10
خطای ارتباطی نوع خطاهاي مؤثر در خطوط ارتباطي
Crash: کانال از ارسال پيغام ميايستد. Omission: پيغامهاي ارسال شده از طريق کانال از بين ميروند. اختياري (Byzantine): حتي توليد پيغامهاي غلط هم ممکن است. Timing: پيغامها تندتر يا کندتر از مشخصات آنها ارسال ميشود.
11
مشخصات Bcast فرض کنيم که پردازهها بوسيله Bcast محاوره ميکنند. درصورت رخداد خطا، تنها بخشي از پردازهها پيغام را دريافت ميکنند. بنابراين نياز داريم که يک Reliable Bcast داشته باشيم. غيررسمي:: پخش همگاني مطمئن (ضعيفترين گونه Bcast مورد نظر) سه ويژگي را تضمين ميکند: همه پردازههاي درست روي مجموعه پيغامهاي دريافت کرده توافق داشته باشند. همه پيغامهاي Bcast شده بوسيله پردازههاي درست دريافت شده باشند. هيچ پيغام مغلوطي دريافت نشده باشد.
12
مشخصات Bcast – ادامه: توجه: Reliable Bcast محدوديتي روي ترتيب پيغامها ندارد. يک نوع قويتري از Bcast مطرح ميشود. غيررسمي: FIFO Bcast يک Reliable Bcast است که رسيدن پيغامها به پردازهها را به ترتيب پخش شده توسط فرستنده تضمين ميکند. Causal Bcast نسخه قويتري از FIFO Bcast است که پيغامهاي پخش شده را براساس ترتيب پخش، تحويل ميدهد. ولي Causal Bcast اجازه ميدهد که پردازهها، پيغامهاي علاً نامربوط را به ترتيب مختلفي دريافت کنند. Atomic Bcast، Bcastيي است که همه پيغامها را با ترتيب يکسان تحويل ميدهد. FIFO Atomic Bcast ترکيبي از FIFO و Atomic. Atomic Bcast Causal ترکيبي از Causal و Atomic. در اين بحث تنها خود را معطوف خطاهاي benign ميکنيم.
13
Reliable Broadcast پيغام m داراي فيلدهاي شناسهي فرستنده [sender(m)] و شماره ترتيب [seq#(m)] ميباشد. R.Bcast يک Bcast است که شرايط زير را برآورده کند: اعتبار Validity: اگر يک پردازه درست، پيغام m را Bcast کند سپس همهي پردازههاي درست نهايتاً m را دريافت خواهند کرد. توافق Agreement: اگر يک پردازه درست پيغام m را تحويل بگيرد سپس همه پردازههاي درست نهايتاً m را تحويل خواهند گرفت. درستي (جامعيت) Integrity: براي هر پيغام m، هر پردازهي درست m را حداکثر يکبار دريافت ميکند به شرطي که پردازهاي m را Bcast کرده باشد.
14
Reliable Broadcast سؤال: اگر P در حين پخش با خطا مواجه شد؟
يا همه دريافت کردهاند (ميکنند) يا هيچکس دريافت نکرده (نميکند) اگر P، broadcast(m) را فراخواند و بلافاصله Crash کند، پردازههاي درست از قصد P بر پخش m مطلع نميشوند و يا اگر بخشي از اطلاعات (به حد کافي) ارسال شده باشد، همه آنرا دريافت خواهند کرد.
15
FIFO Broadcast هر پيغامي محتوايي دارد که بدون توجه به آن ممکن است سوء تفسير پيش آيد. چنين پيغامي وقتي ميتواند توسط يک پردازه Bcast شود که محتوايش دانسته شود. مثلا در کاربردهايي، محتواي m شامل پيغامهاي Bcast شده توسط فرستنده m است. مثلا در رزرو بليط، محتواي يک پيغام لغو شامل پيغامهايي است که آن رزرو را انجام دادهاند. لغو نبايد در يک سايت تحويل شود که آن سايت محتواي پيغام را قبلا دريافت نکرده است. بنابراين نياز کاربرد به FIFO Bcast، يک R.Bcast که شرط زير را برآورده کند: FIFO Order: اگر پردازهاي m را قبل از m پخش کند، سپس هيچ پردازهي درستي نبايد m را دريافت کند، مگر آنکه قبلا m را تحويل گرفته باشد.
16
Causal Broadcast ترتيب FIFO براي موقعي مناسب است که محتواي m شامل تنها پيغامهاي ارسال شده فرستنده m، قبل از m باشد. ولي m ممکن است وابسته به پيغامهاي تحويل شده به m قبل از ارسال m هم باشد. مثال: در يک کاربرد Net News، اگر کاربران با ترتيب FIFO پيغامهايشان را بفرستند، سناريوي زير رخ خواهد داد: A يک پيغام مي فرستد، B روي سايت ديگري پيغام A را گرفته و جواب آنرا ارسال ميکند، C پيغام B را قبل از پيغام A دريافت ميکند. پاسخ را بد تفسير ميکند.
17
Causal Broadcast اگر اجراي اعمال اوليه broadcast و deliver را وقايعي تلقي کنيم که رخ دادهاند، واقعه e قبل از f رخ داده است ef اگگر: يک پردازه e و f را به ترتيب اجرا کرده باشد، يا e پخش يک پيغام مثل m و f تحويل آن باشد، يا واقعة hيي وجود داشته باشد که eh و hf اين رابطه غيرحلقوي است چون در دنياي واقع، تحويل پيغام پس از ارسال آن رخ ميدهد.
18
Causal Broadcast Causal Bcast يک Reliable Bcast است که نياز زير را ارضاء کند: ترتيب علّي: اگر پخش m علّا قبل از پخش m باشد سپس هيچ پردازهي درستي m را دريافت نميکند مگر آنکه m را تحويل گرفته باشد.
19
Atomic Broadcast پخش علّي کاري به ترتيب پيغامهاي علّا نامربوط ندارد. پردازههاي درست ممکن است پيغامهاي علّا نامربوط را با ترتيب نايکساني بگيرند. مثلا يک پايگاه داده تکرار شده را درنظر بگيريد که دو نسخه از حساب x را در سايتهاي متفاوتي نگهميدارند. در ابتدا x داراي , تومان است. يک کاربر 20,000 تومان واريز ميکند. پيغام m «20,000 به x اضافه شود» پخش ميشود. در همين زمان، از سايت ديگري پيغام m «10% بهره به x افزوده شود» پخش ميشود. m و m علّا به هم مربوط نيستند و لذا با C.Bcast اين دو به هر ترتيبي ميتوانند به همه سايتها برسند. ناسازگاري مقادير نسخ x
20
Atomic Broadcast A.Bcast لازم ميداند که همه پردازههاي درست همه پيغامها را با ترتيب يکساني تحويل بگيرند. يعني همه پردازهها ديد يکساني از سيستم داشته باشند. A.Bcast يک R.Bcast است که ترتيب زير را برآورده کند: ترتيب کلي: اگر پردازههاي درست p و q پيغامهاي m و m را تحويل گرفته باشند، سپسp، m را قبل از m تحويل ميگيرد اگر q، m را قبل از m تحويل بگيرد.
21
FIFO Atomic Broadcast A.Bcast نيازي به تحويل FIFO پيغامها ندارد. براي مثال يک پردازه درحين پخش m با خطاي مقطعي مواجه شده است و سپس m را پخش کرده است و پردازههاي درست تنها m را دريافت کردهاند. بنابراين A.Bcast قويتر از FIFO Bcast نيست. لذا: FIFO A.Bcast يک R.Bcast که دو شرط ترتيب کلي و FIFO را متقاعد مي کند.
22
Causal Atomic Broadcast
FIFO A.Bcast تضمين نميکند که پيغامها به ترتيب علّي تحويل شوند. همان مثال خبر شبکه را درنظر بگيريد و فرض کنيد FIFO A.Bcast براي ارسال پيغامها بکار رود. سناريوي زير را درنظر بگيريد: کاربر با خطاي A خبري را پخش ميکند؛ کاربر با خطاي B (که تنها کسي است که پيغام را تحويل گرفته است) پاسخي را پخش ميکند و بلافاصله Crash ميکند (قبل از دريافت پيغام پخششده خودش). کاربر درست C پاسخ را تحويل ميگيرد، هرچند پيغام اصلي را دريافت نکرده است. تعريف مي کنيم Causal Atomic Bcast يک Reliable Bcast است که نياز ترتيب کلّي و علّي را برآورده ميکند. اين نوع Bcast قويتر از هردوي FIFO A.Bcast و C.Bcast ميباشد.
23
Timed Broadcast خيلي از کاربردها نياز دارند که اگر پيغامي دريافت شد حتما در يک محدوده زماني مشخصي از لحظه پخش دريافت شود. اين ويژگي را - timeliness گويند. زمان به يکي از دو شکل زمان واقعي و زمان محلي اندازه گيري مي شود. -timeliness(با زمان واقعي): اگر پيغامي در لحظه t پخش شد، هيچ پردازه درستي آنرا پس از t+t دريافت نکند. در مورد زمان محلي، بايد تفاوت زماني بين زمان محلي پخشکننده و تحويل گيرنده محدود باشد. فرض ميکنيم که هر پيغام m شامل يک زمانمهر ts(m) است که زمان پخشکننده را مشخص مي کند. -timeliness(با زمان محلي): يي وجود دارد که هيچ پردازه درستي (p)، پيغام m را پس از ts(m)+ (برحسب ساعت p) دريافت نميکند.
24
Timed Broadcast هر Bcastاي که شرايط -timeliness را برآورده کند Timed Bcast ناميده مي شود. بنابراين Timed Reliable Bcast داريم و... . را تأخير (Latency) اين روش پخش گوييم و در هر صورت مشخص ميکنيم که زمان واقعي است يا منطقي (محلي).
25
Uniform Broadcast خواص مطرح شده پخش همگاني شامل توافق، جامعيت، ترتيب و -timeliness هيچ محدوديتي روي پيغامهاي تحويل شده پردازههاي خطادار وجود ندارد. مثلا ويژگي توافق Agreement اجازه ميدهد که يک پردازه خطادار پيغامي را دريافت کند که بوسيله پردازههاي درست دريافت نشده باشد. اين رفتار در خيلي از کاربردها پذيرفته نيست. شرايط و ويژگيهاي قويتري ميتوان داشت:
26
Uniform Broadcast توافق يکنواخت (Uniform Agreement):
اگر پردازهاي (اعم از سالم يا خطادار) پيغام m را دريافت کرد سپس همه پردازههاي درست هم نهايتا m را دريافت خواهند کرد. جامعيت يکنواخت (Uniform Integrity): براي هر پيغام m، هر پردازه (اعم از درست يا خطادار) حداکثر يک بار m را دريافت ميکند (به شرطي که پيغام پخش شده باشد).
27
Uniform Local-Time -timeliness
ثابت يي وجود دارد که هيچ پردازه p پيغام m را پس از ts(m)+ (برحسب زمان p) دريافت نميکند. P ممکن است سالم يا خطادار باشد. Uniform FIFO order Uniform Causal order Uniform Total order براي هر کدام ميتوان فرم Uniform آنرا تعريف کرد.
28
ناسازگاری و آلودگی (Contamination)
اگر پردازهاي پيغامي را دريافت نکند (در حالي که بقيه دريافت کردهاند) وضعيت ناسازگاري پيدا ميکند و براساس اين وضعيت ناسازگار محاسبات خود را ادامه داده و پيغام پخش ميکند کل سيستم آلوده ميشود. (هرچند که نوع خطا Omission بوده است.) لازم است به نحوي از اين آلودگي جلوگيري شود. مثلا اطلاعاتي در هر پيغام باشد که ارتباط آنرا با پيغام قبلي معلوم کند و لذا عدم دريافت يک پيغام براحتي قابل کنترل باشد.
29
جمعبندي بينابيني: اعتبار: اگر پردازه درستي broadcast(m) را انجام داد، همه پردازههاي درست آنرا دريافت ميکنند. توافق: اگر پردازهاي m را دريافت کرد، همه پردازههاي درست ديگر هم دريافت ميکنند. جامعيت: هر پردازه درست تنها يکبار m را دريافت ميکند اگر پردازهاي آنرا پخش کرده باشد.
30
جمع بندی و نتیجهگیری Reliable Bcast = Validity + Agreement + Integrity FIFO Bcast = R.Bcast + FIFO Order Causal Bcast = R.Bcast + Causal Order Atomic Bcast = R.Bcast + Total Order FIFO A.Bcast = R.Bcast + FIFO Order +Total Order Causal Bcast = R.Bcast + Causal Order + Total Order Total Order R.Bcast A.Bcast FIFO Order FIFO Order Total Order F.Bcast F.A.Bcast Causal Order Causal Order Total Order C.Bcast C.A.Bcast
31
Broadcast Algorithms الگوريتمها به روشي سلسله مراتبي و لايهاي بيان ميشوند يعني ابتدا R.Bcast و سپس بين بقيه براساس آن. همه الگوريتمهايي که بيان ميشود فرض Uniform Integrity را دارند. قرارداد علامتگذاري: R براي Reliable F براي FIFO C براي Causal A براي Atomic FA براي FIFO Atomic CA براي Causal Atomic broadcast (T,m) نوع پخش Message deliver(T,m)
32
Broadcast Algorithms اگر پردازه اي broadcast(T,m) را فراخواند گوئيم m را T- Bcast کرده است. براي مثال broadcast(R,m) را -Timeliness Reliable Bcast پيغام m خوانيم.
33
Reliable Broadcast بهراحتي در سيستمهاي ناهمگام با خطاي ملايم پردازه و کانال ارتباطي (بدون افزار) قابل پيادهسازي است. ايده مبنايي: براي R.Bcast يک پيغام، يک پردازه پيغام را به خود و همه همسايگانش ميفرستد. براي بار اولي که پردازهاي پيغامي را دريافت کرد آنرا به همه همسايگانش رله ميکند و سپس آنرا R.Deliver ميکند. فرضمان اين است که اعمال اوليه send (m) و receive (m) شرايط زير را برآورده ميکنند: اعتبار: اگر p، m را به q بفرستد و p و q و کانال ارتباطي درست باشند، سپس q پيغام را دريافت خواهد کرد. جامعيت يکنواخت: براي هر m، q حداکثر يکبار m را از p دريافت خواهد کرد اگر p، m را فرستاده باشد.
34
Reliable Broadcast الگوريتم: در هر پردازه p داريم:
To execute broadcast (R,m): tag m with Sender(m) and Seq#(m) Send(m) to all neighbors including p deliver (R,m) occurs as follows: upon Receive(m) do if p has not previously executed deliver(R,m) then if Sender(m)p then Send(m) ) to all neighbors deliver(R,m) الگوريتم فوق در يک سيستم ناهمگام که پردازهها تنها با خطاي Receive Omission مواجه باشند و خطاي ارتباطي نداشته باشيم يک الگوريتم Uniform R.Bcast است.
35
FIFO Broadcast براي FIFO Bcast يک پيغام m، پردازهاي نظير q، آنرا R.Bcast ميکند. اگر m، iامين پيغام F.Bcast شده بوسيله q باشد: Sender(m)=q و Sep#(m)=i هر پردازهي p، به ازاء هر فرستنده q يک شمارنده next[q] نگهميدارد که معرف شماره پيغام بعدي است که بايد از q، F.Bcast شود. وقتي پردازهي p، m را R.deliver کرد، آنرا در msgbag ميگذارد و آنها را که ميتواند F.deliver ميکند. (به ترتيب FIFO)
36
FIFO Broadcast Algorithm
Initialization: msgbag := next[q] := 1 for all q To execute broadcast(F,m) broadcast(R,m) deliver(F,m) occurs as follows: upon deliver(R,m) do q := Sender(m) msgbag := msgbag {m} while ( m msgbag : Sender(m)=q AND Sep#(m)=next[q] do deliver(F, m) next[q] := next[q] + 1 msgbag := masbag – {m}
37
FIFO Broadcast Algorithm
قضيه: با داشتن يک الگوريتم R.Bcast، الگوريتم بالا ترتيب يکنواخت FIFO را ارضاء ميکند. اگر الگوريتم مبنايي ويژگيهاي Uniform Agreement يا - timeliness را ارضاء کنند، الگوريتم مشتق شده نيز چنين خواهد بود.
38
Causal Broadcast Initialization: PrevDlvrs := broadcast(C,m) broadcast(F,<PrevDlvrs || m>) deliver(C,m): upon deliver(F,< m1,m2,…,ml >) for some l do for i:=1…l do if P has not previously executed deliver(C,mi) then deliver(C,mi) PrevDlvrs := PrevDlvrs || mi
39
Causal Broadcast prevDlvrs مجموعه پيغامهايي است که p از آخرين Bcast، C.deliver کرده است. بنابراين در broadcast آنها را پخش ميکند. وقتي پردازه q، چنين دنباله پيغامي را C.deliver ميکند، پيغامهايي از دنباله را که قبلا دريافت (C.delive) نکرده است C.deliver ميکند. درستي اين الگوريتم نيازمند تضمين Uniform FIFO Order بوسيله FIFO Bcast زيرين است. شرايط خاصي بر الگوريتم حکمفرما نيست و لذا براي هر سيستم (همگام يا ناهمگام)، توپولوژيهاي مختلف شبکه، و هر تعداد خطاي ملايم کار ميکند.
40
Atomic Broadcast برخلاف الگوريتمهاي قبلي، هيچ الگوريتم Atomic Bcast مشخصي (Deterministic) براي سيستمهاي ناهمگام وجود ندارد، حتي اگر فرض کنيم که تنها و حداکثر يک پردازه خطادار و آنهم با خطاي Crash داريم. الگوريتم زير A.Bcast را در يک سيستم همگام پياده سازي ميکند: To execute broadcast(A,m): Broadcast(R,m) deliver(A,m) occurs as follows: upon deliver(R,m) do schedule deliver(A,m) at time ts(m)+
41
Terminating Reliable Broadcast
هر پردازه مجاز است که هر پيغامي از M (مجموعه پيغامهاي ممکن) را پخش همگاني کند و هيچ دانش قبلي در مورد پيغامهاي در راه و يا بلاتکليف ندارد. اگر مثلا p پس از فراخواني Bcast با خطا مواجه شود پردازههاي درست نميتوانند انتظار داشته باشند که همه پيغامها را دريافت ميکنند. حتي از قصد p براي پخش هم نميتوانند مطلع شوند. برعکس در مواردي قرار است يک پردازه پيغامي را پخش کند و ديگر پردازهها از اين قصد مطلع هستند. مثلا در يک سيستم توزيع شده بيدرنگ، يک سنسور درجه حرارت قرار است هر از چندگاه (معلوم) درجه حرارت را اعلام کند. هرکدام از اين پخشها ميتواند به عنوان Terminating R.Bcast مطرح شود. نوعBcast يي که نياز دارد همه پردازههاي درست هميشه يک پيغام را دريافت کنند، حتي اگر فرستنده Faulty باشد و يا قبل از Bcast، Crash کند.
42
Terminating Reliable Broadcast
پيغام تحويل شده ممکن است پيغام خاص SF باشد که SFM و معرف Faulty بودن فرستنده است. بنابراين مجموعه پيغامهايي که ممکن است دريافت شود (تحويل شود): M{SF} فرق اين نوع Bcast با R.Bcast در اين است که پردازههاي درست هميشه پيغام را دريافت ميکنند. همچنين نياز جامعيتي هم کمي رقيق ميشود که به پردازهها امکان ميدهد که پيغام پخش نشده SF را هم تحويل بگيرند.
43
Terminating Reliable Broadcast
Terminating Reliable Bcast شرايط زير را برآورده مي کند: Termination: هر پردازه درست نهايتا پيغامي دريافت ميکند. اعتبار: اگر فرستنده درست باشد و پيغامي پخش کند سپس همه پردازههاي درست آنرا دريافت ميکنند. توافق جامعيت: هر پردازه درست حداکثر يک پيغام تحويل ميگيرد و اگر mSF باشد حتما بايد پردازهاي آنرا پخش کرده باشد. اين نوع پخش بويژه درخصوص خطاي نامعلوم تحت عنوان توافق Byzantine مطرح ميشود.
44
اجماع در مورد Terminating R.Bcast، يک پردازه پيغامي را پخش ميکند و انتظار ميرود که همه پردازههاي درست روي آن توافق داشته باشند. در مسئله اجماع، همه پردازههاي درست يک مقداري ارائه ميدهند و سپس بايد روي مقداري از مقادير ارائه شده توافق داشته باشند. براي مسئله اجماع، دو تا Primitive لازم داريم: Propose (v) decide (v) Vمجموعه همه مقاديري است که ممکن است propose شود. مجموعه مقاديري که ميتواند روي آن اجماع شود (تصميم گرفته شود) عبارتست از V{NU} که NUV معرف اين است که همه پردازهها مقدار يکساني را ارائه ندادهاند.
45
اجماع - ادامه اجماع نيازهاي زير را برآورده ميکند:
Termination: نهايتا هر پردازه درست روي مقداري تصميم ميگيرد. اعتبار: اگر همه پردازهها v را ارائه دهند سپس همه پردازهها روي v تصميم ميگيرند. توافق: اگر پردازه درستي روي v تصميم بگيرد، سپس همه پردازههاي درست هم روي v تصميم ميگيرند. جامعيت: هر پردازه درست نهايتا روي حداکثر يک مقدار تصميم ميگيرد. اگر روي vNU تصميم بگيرد سپس پردازهاي بايد v را ارائه داده باشد.
46
ارتباط بین مسائل: هدف: بررسي ارتباط بين اجماع و T.R.Bcast؛ و بين اجماع وA.Bcast که در هر حالت، در شرايط خاصي طرفين مسئله را يکي ميدانيم (هم ارز يکديگر ميدانيم). تکنيک بررسي اين هم ارزي Reduction است. گوئيم مسئله B منجر به مسئله A ميشود (تقليل مييابد) اگر الگوريتم TAB وجود داشته باشد که هر الگوريتم براي A را به الگوريتمي براي B تبديل کند. مثل منجرشدن C.Bcast به FIFO Bcast غيررسمي: Reduction از B به A بعضي مواقع به شکل B A نوشته ميشود. يعني که B سخت تر از A نيست. دو مسئله را هم ارز گوئيم اگر قابل تقليل به يکديگر باشند.
47
ارتباط بین اجماع و TRB تقليل اجماع به TRB:
براي حل اجماع، هر پردازه با استفاده از TRB مقدار خود را propose ميکند. وقتي پردازهاي مقداري را از پردازهي q تحويل گرفت، آنرا در واردهي V[q] درج مي کند و وقتي همه واردههاي بردار V تکميل شد، روي اولين مقدار non-SF از بردار V تصميم ميگيرد. با اين روش ميتوان با وجود خطاي ملايم و بدون توجه به همبندي شبکه و همگامي/ ناهمگامي سيستم در مورد هر سيستمي اين Reduction را انجام داد. (اجماع به TRB)
48
ارتباط بین اجماع و TRB - ادامه
براي پخش پيغام m، فرستنده، m را در لحظه t0 به همه ميفرستد. اگر هر پردازه، m را در محدودهي زماني t0+ دريافت کرد، از الگوريتم اجماع براي propose کردن m و در غيراينصورت براي propose کردن SF استفاده ميکند. براي تحويل يک msg، پردازهها منتظر الگوريتم اجماع ميمانند تا تصميم بگيرد. اگر تصميم غير از NU است مقدار را تحويل ميگيرند. در غير اين صورت SF را تحويل ميگيرند.
49
ارتباط بین اجماع و Atomic Broadcast
اجماع ميتواند براحتي به A.Bcast تقليل يابد. براي propose کردن يک مقدار، يک پردازه آن مقدار را A.Bcast ميکند. براي تحويل، پردازه مقدار اولين پيغام A.Deliver شده را بر ميدارد. باتوجه به ترتيب کلي موجود در A.Bcast، همه پردازهها مقدار يکساني را برخواهند داشت. اين تقليل فرضي در مورد سيستم ندارد و لذا هر تعداد خطاي ملايم را تحمل ميکند. امکان تقليل A.Bcast به اجماع درحضور تنها خطاي Crash وجود دارد (خارج از حوصله بحث اين فصل)
50
پیچیدگی Complexity در مورد کارآيي الگوريتمهاي توزيع شده، تنوعي از معيارها مطرح هستند. کليديها عبارتند از: زمان و تعداد پيغامهاي مبادله شده و يا لازم براي اجراي الگوريتم. در مورد بررسي يک الگوريتم متحمل خطا، معيار تحمل خطا يا Robustness که معمولا براساس تعداد پردازههاي خطاداري است که ميتواند متحمل شود.
51
پیچیدگی - ادامه تحمل خطا:
با وجود n پردازنده فرض ميکنيم که f حداکثر تعداد پردازههاي خطادار است که ميخواهيم تحمل کنيم. براي هريک از دو مسئله TRB و اجماع، اگر خطاها اختياري باشد، نهايتا f < n/3 باشد. بايستي n > 3f باشد. پيچيدگي زماني: در سيستمهاي ناهمگام، اندازهگيري زماني روشن نيست. بنابراين بايستي ملاک ديگري براي سنجش بکار برد. درخصوص پيچيدگي زماني مناسب است که مدل خاصي از همگامي معرفي شود: مدل Synch. Round: فرض ميکنيم که ساعتها همگام شدهاند و در لحظات گسسته 0، 1، 2،... تيک ميزند. زمان بين تيک i-1 و i را iامين دور (round) گويند.
52
پیچیدگی - ادامه در يک دور (round)، هر پردازه اعمال زير را در ترتيب مشخص شده انجام ميدهد: ارسال پيغام به زيرمجموعهاي از همسايگان دريافت پيغام ارسال شده بوسيله همسايگان در شروع همان دور. تغيير حالت برمبناي حالت فعلي و پيغامهاي دريافت شده. اين مدل (همگامي دوري) معمولا در يک شبکه ارتباطي کاملا مرتبط و بدون خطاي ارتباطي فرض ميشود. بنابراين هر زوج پردازه در هر دور ميتوانند پيغام مبادله کنند.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.