Professional Documents
Culture Documents
Br.13
1
Вовед
• Неуспехот во недистрибуирани системи често е
целосен во смисла дека влијае на сите компоненти, и
може лесно да ја урне целата апликација
• Карактеристична карактеристика на дистрибуираните
системи е поимот делумен неуспех
◦ Кога една компонента во дистрибуираниот систем
откажува, овoj неуспехот може да влијае на правилното
функционирање на други компоненти, додека целосно
се оставаат другите компоненти незасегнати
• Дистрибуираниот систем треба да толерира дефекти и
продолжуваат да функционираат до одреден степен
дури и во нивнитo присуство
2
Маскирање на неуспех со вишок
Клучната техника за маскирање на грешките е да се користи вишок:
◦ Вишок на информации (на пр. Хаминг код)
◦ Временски вишок (на пр. трансакции)
◦ Физички вишок (во хардвер или софтвер)
- Троен модуларен вишок.
3
Процесна отпорност
Клучниот пристап за толерирање на
дефектп роцес е да се организираат
неколку идентични процеси во група
◦ Ако еден процес во групата не успее,
се надеваме дека некоj може да преземе
друг процес
4
Рамни групи наспроти хиерархиски
групи
5
RPC/RMI во присуство на неуспеси
Може да се појават пет различни класи на неуспеси:
◦ Клиентот не може да лоцира сервер
-Пример: серверот се развива и има инсталиранo нова верзија
на интерфејсот
◦ Пораката за барање од клиентот до серверот е изгубена
- Ако тајмерот истече пред да се врати одговорот или ACK,
напораката е повторно испратена
◦ Серверот паѓа по добивањето барање (...)
◦ Пораката за одговор од серверот до клиентот е изгубена
- Доколку нема одговор во разумен рок, самои спратете го
барањето уште еднаш (сите барања мора да бидат структурирани на
идемпотентен начин – безбедно повторено, без оштетување
направено)
◦ Клиентот паѓа по испраќање барање
◦ Несакана пресметка (Orphan process).
6
Пад на серверот (1)
7
Дистрибуирана посветеност
Проблемот со распределените обврски вклучува имање
операција што ја врши секој членна процесна група, или
воопшто нема
Со дистрибуирани трансакции операцијата може
да биде извршена трансакција на една локација што
учествува во трансакцијата
Во едноставна шема, координаторот ги кажува сите
други процеси (учесници), без разлика дали се локално
или не изведете ја предметната операција – еднофазeн
протокол за извршување
◦ Ако еден од учесниците всушност не може да ja
изврши операција, нема начин да му кажеш на
координаторот(!)
8
Двофазно извршување (1)
9
Двофазно извршување (2)
10
Трифазно извршување
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
Пријавување на пораки
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