You are on page 1of 19

Толеранција на грешки

Br.13

1
Вовед
• Неуспехот во недистрибуирани системи често е
целосен во смисла дека влијае на сите компоненти, и
може лесно да ја урне целата апликација
• Карактеристична карактеристика на дистрибуираните
системи е поимот делумен неуспех
◦ Кога една компонента во дистрибуираниот систем
откажува, овoj неуспехот може да влијае на правилното
функционирање на други компоненти, додека целосно
се оставаат другите компоненти незасегнати
• Дистрибуираниот систем треба да толерира дефекти и
продолжуваат да функционираат до одреден степен
дури и во нивнитo присуство

2
Маскирање на неуспех со вишок
 Клучната техника за маскирање на грешките е да се користи вишок:
◦ Вишок на информации (на пр. Хаминг код)
◦ Временски вишок (на пр. трансакции)
◦ Физички вишок (во хардвер или софтвер)
- Троен модуларен вишок.

3
Процесна отпорност
 Клучниот пристап за толерирање на
дефектп роцес е да се организираат
неколку идентични процеси во група
◦ Ако еден процес во групата не успее,
се надеваме дека некоj може да преземе
друг процес

4
Рамни групи наспроти хиерархиски
групи

а) Комуникација во рамна група.


◦ Ако некој процес падне, помалата група продолжува
◦ Комплицирано одлучување
б) Комуникација во едноставна хиерархиска група
◦ Губењето на координаторот ја запира групата
◦ Координаторот донесува одлуки без да им пречи на другите

5
RPC/RMI во присуство на неуспеси
 Може да се појават пет различни класи на неуспеси:
◦ Клиентот не може да лоцира сервер
-Пример: серверот се развива и има инсталиранo нова верзија
на интерфејсот
◦ Пораката за барање од клиентот до серверот е изгубена
- Ако тајмерот истече пред да се врати одговорот или ACK,
напораката е повторно испратена
◦ Серверот паѓа по добивањето барање (...)
◦ Пораката за одговор од серверот до клиентот е изгубена
- Доколку нема одговор во разумен рок, самои спратете го
барањето уште еднаш (сите барања мора да бидат структурирани на
идемпотентен начин – безбедно повторено, без оштетување
направено)
◦ Клиентот паѓа по испраќање барање
◦ Несакана пресметка (Orphan process).

6
Пад на серверот (1)

 Сервер во комуникацијата клиент-сервер


а) Нормален случај
б) Несреќа по извршувањето
в) Несреќа пред извршување

7
Дистрибуирана посветеност
Проблемот со распределените обврски вклучува имање
операција што ја врши секој членна процесна група, или
воопшто нема
Со дистрибуирани трансакции операцијата може
да биде извршена трансакција на една локација што
учествува во трансакцијата
Во едноставна шема, координаторот ги кажува сите
други процеси (учесници), без разлика дали се локално
или не изведете ја предметната операција – еднофазeн
протокол за извршување
◦ Ако еден од учесниците всушност не може да ja
изврши операција, нема начин да му кажеш на
координаторот(!)

8
Двофазно извршување (1)

а) Машината за конечни состојби за координаторот во 2PC.


б) Машината за конечни состојби за учесник.

9
Двофазно извршување (2)

Дејства преземени од страна на учесникот P кога престојува во државата


ПОДГОТВЕН и откако контактирал со друг учесник Q
◦ Кога координаторот ќе се сруши, учесниците можеби нема да бидат
може да донесе конечна одлука и да остане блокиран додека
координаторот закрепнува

10
Трифазно извршување

а) Машина за конечни состојби за координаторот во 3PC


б) Машина за конечни состојби за учесник

11
Обнова (од грешка)
 Закрепнување наназад – извадете го системот од неговата сегашната
погрешна состојба се враќа во претходн оправилна состојба
◦ На пр. реемитување на пакети во сигурна комуникација
 Контролна точка – евиденција на моменталната состојба на системот
 Напредно закрепнување – наместо да се вратите назад на претходна,
контролна состојба, се прави обид да го доведе системот во правилна
нова состојба од кои може да продолжи да ги извршува
◦ На пр. реконструкција на пакети (корекција на бришење)
 Евиденција на пораки
◦ Базиран на сервер - процес ги евидентира своите пораки
претходно испраќајќи ги
◦ Врз основа на ресивер - процесот на примање најпрво го логира во
дојдовна порака пред да ја достави до апликацијата се извршува

12
Проверка
Линија за обновување.

13
Независно проверување(1)

 Домино ефект: за да се открие линија за обновување тоа го бара секој


процес се враќа во неговата неодамна зачувана состојба – ако овие
локални држави заеднички не формираат дистрибуирана слика, потребно
е дополнително враќање назад(!)

14
Независно проверување(2)
Како се евидентираат зависностите?
◦ CP[i](m) – мети контролен пункт преземен од
процесот Pi
◦ INT[i](m) – интервалот помеѓу CP[i](m-1) иCP[i](m)
◦ Кога Pi испраќа порака во интервал INT[i](m), тоа го
враќа парот (i, m) до процесот на примање
◦ Кога Pj прима порака во интервал INT[j](n), тоа ја
евидентира зависноста INT[i](m)->INT[j](n)
◦ Ако во одреден момент Pi потребно е да се врати
назад кон контролен пункт CP[i](m-1), сите процеси кои
имаат доби пораки од Pi и беа испратен интервал
INT[i](m), се враќаат назад во контролна состојба која
претходи на приемот на такви пораки

15
Координирано проверување(1)
Главна предност: зачуваната состојба е автоматски глобално
доследен(!)
Двофазен протокол за блокирање
◦ Координаторот мултиестира CHECKPOINT_REQUESTпорака
до сите процеси
◦ Кога процес ќе прими таква порака
1. потребно е локален контролен пункт,
2. редици секоја следна порака предадена од страна на
апликација што ја извршува, и
3. го потврдува координаторот дека презел аконтролен пункт
◦ Кога координаторот ќе добие признание од сите процеси,
тоа мултикасти CHECKPOINT_DONE порака за да им се дозволи
на процесите да продолжи

16
Координирано проверување(2)
• Инкрементална слика
◦ Координаторот мултиестира барање за
контролна точка само на оние процеси на кои
им пратил порака бидејќи последен пат зеде
контролен пункт
◦ Кога процес P ќе добие такво барање, тој го
проследува до сите оние процеси на кои
самиот P маше испратено порака од
последниот контролен пункт и така натаму…
17
Пријавување на пораки

Неправилно повторување на пораките по закрепнувањето,што доведува


до процес на несакана пресметка -Orphan process
Процес на несакана пресметка (Orphan process) – процес кој го преживува
крах на друг процес, но чија состојба е неконзистентно со урнатиот процес
по неговото обновување (R има порака (m3) што била испратено пред
несреќата...)

18
Пријавување на пораки(2)
• DEP(m) – збир на процеси кои зависат од доставување на
пораката m
• COPY (m) – збир на процеси кои имаат копија од m,но не
(сеуште) во нивното локално стабилно складирање
• Процес несакана пресметка Orphan process – има порака m,
таква што процесот е содржан во DEP(m), додека во исто време
секој процес во COPY(m) падна
◦ Зависи од m, но не постои начин да се репродуцира пренос
на m
• За да се избегнат процесите несакана пресметка Orphan
process :
◦ Секогаш кога некој процес станува член на DEP(m), тој исто
така станува член на COPY(m)
(секогаш кога некој процес станува зависен од испораката на m,
тој секогаш ќе чува копија од m)

19

You might also like