Кіріспе

Қатеге төзімділік ұғымы

Өзін-өзі тұрақтандыру – таратылған жүйелердегі қатеге төзімділік ұғымы. Кез келген бастапқы күй берілген жағдайда, өзін-өзі тұрақтандыратын таратылған жүйе шекті сандағы орындау қадамдарында дұрыс күйге жетеді. Бір қарағанда, өзін-өзі тұрақтандыру кепілі, жүйенің белгілі бір күйлер арасындағы өзгерулер кезінде әрқашан дұрыс күйде қалуын қамтамасыз етуге бағытталған дәстүрлі қатеге төзімділіктен кем үміт беретін сияқты көрінеді. Дегенмен, дәстүрлі қатеге төзімділіктің өзі әрқашан қол жеткізілмейді. Мысалы, жүйе дұрыс емес күйде іске қосылғанда немесе сыртқы тұлғаның әрекетінен зардап шеккенде оны қамтамасыз ету мүмкін емес. Сонымен қатар, таратылған жүйелердің күрделілігі оларды жөндеу мен талдауды өте қиын жасайды. Сондықтан, таратылған жүйенің дұрыс емес күйге жетуіне жол бермеу де қиын. Шындығында, өзін-өзі тұрақтандырудың кейбір түрлері көптеген қазіргі заманғы компьютерлік және телекоммуникациялық желілерге енгізілген, себебі бұл оларға алгоритмді жобалау кезінде ескерілмеген қателермен күресуге мүмкіндік береді. 1974 жылы Эдсгер Дайкстраның жариялаған мақаласынан бері көп жылдар өткенімен, бұл ұғым маңыздылығын сақтап келеді, өйткені ол өзін-өзі басқаратын компьютерлік жүйелер мен қатеге төзімді жүйелер үшін маңызды негіз болып табылады. Нәтижесінде, Дайкстраның мақаласы 2002 жылы ACM PODC ықпалды мақаласы сыйлығын алды, бұл таратылған есептеу қауымдастығының ең жоғары наградаларының бірі. Сонымен қатар, Дайкстраның қазасынан кейін сыйлықтың аты өзгертіліп, қазір Дайкстра сыйлығы деп аталады.

Тарих

Э. В. Дикстра 1974 жылы өзін-өзі тұрақтандыру концепциясын ұсынды, бұл осы саладағы одан әрі зерттеулерге түрткі болды. Оның демонстрациясы өзін-өзі тұрақтандырушы өзара қатынасты шектеу алгоритмдерін көрсетуді қамтыды. Сондай-ақ, ол жүйеге қатысты күшті шарттарға тәуелді емес, тұрақтандырушы алгоритмдерді көрсетті. Алдыңғы кейбір протоколдар іс жүзінде тұрақтанды, бірақ жүйеде жаһандық сағат бар деген және әрбір жүйелік өтудің ұзақтығының белгілі жоғарғы шегі бар деген болжамдарға негізделді. Тек он жыл өткен соң, Лесли Лампорт 1983 жылы өткен «Сандық есептеулердің принциптері» (Symposium on Principles of Distributed Computing) конференциясында Дикстраның жұмысының маңыздылығын атап көрсеткенде ғалымдар осы әдемі қатеге төзімділік концепциясына назар аударды. Лампорт өз баяндамасында былай деді: «Мен мұны Дикстраның ең керемет жұмысы деп санаймын, кемінде, оның ең керемет жарияланған мақаласы. Бұл дерлік белгісіз. Мен оны қателерге төзімділік жұмысының маңызды кезеңі деп санаймын. Өзін-өзі тұрақтандыруды қателерге төзімділіктегі өте маңызды концепция деп санаймын және зерттеу үшін өте құнарлы сала деп есептеймін».

Шолу

Бөлінген алгоритм өзін-өзі тұрақтандырады, егер кез келген бастапқы күйден бастап, ол міндетті түрде заңды күйге жуысса және одан кейін заңды күйлер жиынтығында қалып отырса. Күй заңды болып есептеледі, егер осы күйден бастап алгоритм өзінің талаптарын орындаса. Өзін-өзі тұрақтандыру қасиеті үлестірілген алгоритмге оның себебіне қарамастан, уақытша қатеден қалпына келуге мүмкіндік береді. Сонымен қатар, өзін-өзі тұрақтандыру алгоритмін бастапқы күйіне қарамастан, дұрыс жұмыс істеуі үшін бастаудың қажеті жоқ, өйткені ол ақырында дұрыс әрекет ете бастайды. Өзін-өзі тұрақтандыру тұжырымдамасын енгізген Дикстраның мақаласында "токендік сақина" – шеңбер бойынша орналасқан компьютерлер желісі – мысалы келтірілген. Мұнда әрбір компьютер немесе процессор бірден алдыңғы процессордың толық күйін "көре алады", және бұл күй процессордың "токені бар" немесе "токені жоқ" екенін көрсетеді. Бұрын мұндай әрекеттер өте қиын және көп уақыт алатын болғандықтан, осы сипаттама қажетті деп есептелген. (Жоғарыда аталған мақалада сипатталған әдіс бүкіл желіден көп көлемде ақпаратты бір жерге жинап, содан кейін жиналған жаһандық күйдің дұрыс екенін анықтауға тырысады; тіпті осы анықтаудың өзі қиын міндет болуы мүмкін).

Уақыт күрделілігі

Өзін-өзі тұрақтандыру алгоритмінің уақыт күрделілігі (синхронды емес) раундтар немесе циклдармен өлшенеді. Раунд – әрбір процессор кем дегенде бір қадам атқаратын ең қысқа орындалу тізбегі. Сол сияқты, цикл – әрбір процессор өзінің қайта-қайта орындалатын командалар тізімін кем дегенде бір толық рет орындайтын ең қысқа орындалу тізбегі. Шығыс тұрақтандыру уақытын өлшеу үшін күй айнымалыларының бір бөлігі сыртқы түрде көрінетін (шығыс) деп анықталады. Шығыстардың белгілі бір күйлері дұрыс (заңды) деп белгіленеді. Жүйенің барлық компоненттерінің шығыстары жиынтығы, егер қосымша қателер тумаса, олар дұрыс күйде қалып, осы күйге енген сәттен бастап тұрақтанған деп есептеледі. Шығыс тұрақтандыру уақыты – шығыс тұрақтанғанға дейін өтетін уақыт (асинхронды раундтардың саны).

Қатысушы жұмыстар

Өзін-өзі тұрақтандыру тұжырымдамасының кеңейтімі – суперстабилизация. Мұндағы мақсат – топологиялық өзгерістерге ұшырайтын динамикалық таратылған жүйелермен күресу. Классикалық өзін-өзі тұрақтандыру теориясында, кездейсоқ өзгерістер қателер ретінде қарастырылады, жүйе қайта тұрақтанғанша ешқандай кепілдік берілмейді. Суперстабилизацияланған жүйелерде жүйе топологиясы қайта конфигурацияланатын кезде әрқашан орындалатын өту предикаты болады.