Sisteme distribuite teorie 5. Semantica esecurilor în RPC. Comunicatie în grup

Similar documents
Metrici LPR interfatare cu Barix Barionet 50 -

Versionare - GIT ALIN ZAMFIROIU

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Procesarea Imaginilor

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

GHID DE TERMENI MEDIA

Mecanismul de decontare a cererilor de plata

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Managementul referinţelor cu

2.3 PROTOCOLUL DE MESAJE DE CONTROL PENTRU INTERNET (ICMP)

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Documentaţie Tehnică

CERERI SELECT PE O TABELA

Subiecte Clasa a VI-a

Update firmware aparat foto

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

The driving force for your business.

Baze de date distribuite și mobile

Propuneri pentru teme de licență

Lucrarea de laborator nr. 4

The First TST for the JBMO Satu Mare, April 6, 2018

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

Auditul financiar la IMM-uri: de la limitare la oportunitate

Olimpiad«Estonia, 2003

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

EN teava vopsita cu capete canelate tip VICTAULIC

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

Internet-ul a apărut în 1960 când, în SUA, Ministerul Apărării a creat Agenţia pentru proiecte de Cercetare Avansată (ARPA), care are ca obiectiv

Modalitǎţi de clasificare a datelor cantitative

X-Fit S Manual de utilizare

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

INTEROGĂRI ÎN SQL SERVER

Proiectarea Sistemelor Software Complexe

Universitatea George Bariţiu, Braşov

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Implicaţii practice privind impozitarea pieţei de leasing din România

Multicore Multiprocesoare Cluster-e

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

COMUNICAȚII INFORMATIZARE

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Managementul Proiectelor Software Metode de dezvoltare

Class D Power Amplifiers

Metoda de programare BACKTRACKING

Behavioral design patterns (comportamentale) ALIN ZAMFIROIU

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

USING MOBILE AGENTS FOR INFORMATION RETRIEVAL IN B2B SYSTEMS

OBIECTIVUL CURSULUI. Trafic. Componenta a retelei de telecomunicatii desi nu este marcat ca atare in nici o prezentare a structurii acesteia;

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE

Capitolul IV Utilizarea bazelor de date în Internet

O alta abordare in calculul distribuit este memoria virtuală distribuită (Distributed Shared Memory DSM). Din nefericire maşinile paralele cu memorie

Mecanisme de sincronizare în reţelele de calculatoare

3. CLOUD COMPUTING Sisteme de calcul distribuite

Curs 1 17 Februarie Adrian Iftene

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

USING SERIAL INDUSTRIAL ROBOTS IN CNC MILLING PROCESESS

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

CHAMPIONS LEAGUE 2017 SPONSOR:

A Compared Aproach: ASP versus PHP

Reţele de calculatoare

Lucrarea nr. 7. Configurarea reţelelor în Linux

Annual Project meeting and Workshop 8: W8. Managing research data workshop

REAL TIME QUALITY CONTROL OF THE HEATSET OFFSET PRINTING PROCESS

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

UTILIZAREA CECULUI CA INSTRUMENT DE PLATA. Ela Breazu Corporate Transaction Banking

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

Rem Ahsap is one of the prominent companies of the market with integrated plants in Turkey, Algeria and Romania and sales to 26 countries worldwide.

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE

4. Asignarea adreselor IP

Nu găseşti pe nimeni care să te ajute să transporţi comenzile voluminoase?

SAG MITTIGATION TECHNICS USING DSTATCOMS

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Eficiența energetică în industria românească

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

DE CE SĂ DEPOZITAŢI LA NOI?

Transmiterea datelor prin reteaua electrica

Relational and Object-Oriented Methodology in Data Bases Systems

REŢELE DE CALCULATOARE

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

SINGULAR PERTURBATION DETECTION USING WAVELET FUNCTION REPRESENTATION

ACTA TECHNICA NAPOCENSIS

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell

STARS! Students acting to reduce speed Final report

6.1. Tranzacţii O tranzacţie (transaction), este o unitate logică de

Modele de dezvoltare software suplă, agilă

Lucrarea Nr.1. Sisteme de operare. Generalitati

Transcription:

Sisteme distribuite teorie 5. Semantica esecurilor în RPC. Comunicatie în grup

Esecuri în comunicare pierderea de mesaje căderea unui proces 1. Pierderea mesajului cerere 2. Pirederea mejajului răspuns 3. Căderea serverului 4. Căderea clientului

Tipuri de esecuri (1/2) 1. Pierderea unui mesaj cerere: Clientul trebuie să retransmită mesajul după un timeout Problemă: clientul nu poate diferenția diferitele tipuri de eșecuri Ex: dacă mesajul rezultat este cel care a fost pierdut, o retransmitere a mesajului cerere poate rezulta în executarea de două ori a procedurii la distanță Ex: proceduri care necesită mult timp vs. selecția unui timeout scurt 2. Pierderea unui mesaj răspuns: Clientul retransmite cererea după un timeout. Problemă: daca serverul nu recunoaște ce s-a întâmplat, execută procedura din nou

Tipuri de esecuri (2/2) 3. Căderea serverului: Dacă serverul cade datorită unei erori, trebuie determinat dacă execuția parțială a procedurii a produs deja efecte în stare. Ex. Dacă baza de date a fost modificată în timpul procedurii, problema recuperării și a continuării din momentul eșecului nu este trivială 4. Căderea clientului: Un proces client care cade în timpul execuției unui RPC este referit ca o invocare orfană Problemă: ce face serverul cu rezultatele și unde trebuie să le trimită

Semantica esecurilor Aplicații diferite pot avea cerințe diferite în ceea ce privește calitatea serviciului (QoS) în termeni de detecție a eșecurilor și recuperare Semantica eșecului Operație fără eșec Pierdere mesaj Cădere server Maybe (Poate) Execuție: 1 Rezultat: 1 Execuție: 0/1 Rezultat: 0 Execuție: 0/1 Rezultat: 0 At-least-once (Cel puțin odată) Execuție: 1 Rezultat: 1 Execuție: >=1 Rezultat: >=1 Execuție: >=0 Rezultat: >=0 At-most-once (Cel mult odată) Execuție: 1 Rezultat: 1 Execuție: 1 Rezultat: 1 Execuție: 0/1 Rezultat: 0 Exactly once (Exact odată) Execuție: 1 Rezultat: 1 Execuție: 1 Rezultat: 1 Execuție: 1 Rezultat: 1

Semantica Maybe Referită ca și efortul cel mai bun. Nu oferă mecanisme pentru tratarea eșecurilor Ex. RPC poate fi executat o dată sau niciodată la partea server Clientul recepționează cel mult un rezultat Nu oferă garanții Atîta timp cît nu apar eșecuri, RPC este adresat adecvat

Semantica At-least-once RPC va fi executat la partea server cel puțin o data în cazul pierderii de mesaje După un timeout, clientul repetă RPC pînă cînd recepționează un răspuns de la server O procedură poate fi efectuată de mai multe ori la server E posibil ca un client să recepționeze răspunsuri multiple datorate execuției repetate Nu oferă o confirmare dacă serverul cade Adecvată pentru proceduri idempotente care nu cauzează schimbarea stării la server și pot fi executate mai mult decît o dată fără a produce pagube

Semantica At-most-once Procedura va fi executată cel mult o dată - atît în cazul pierderii de mesaje cît și a căderii serverului Dacă serverul nu cade, sunt garantate exact o execuție și exact un rezultat Necesită un protocol complex de gestiune a mesajelor și numerotare

Semantica Exactly once Cazul ideal, nu este ușor de atins Invocarea de către un client va rezulta într-o singură execuție la partea server și va fi furnizat un singur rezultat Dezirabilă pentru tranzacții bancare Cazul cel mai simplu: operații idempotente Cazul unei simple informări care doar citește data de la serverul de la distanță fără a schimba starea serverului Execuția repetată și numeroase mesaje rezultate nu sunt o problemă

Comunicarea în grup RPC: doua părți, clientul și serverul Contra-exemplu: un grup de servere de fișiere care cooperează pentru a oferi un singur sistem de fișiere tolerant la eșecuri Clientul expediază un mesaj la toate serverele pentru a se asigura că cererea este onorată chiar dacă unul dintre acestea cedează RPC nu poate trata comunicarea de la un expeditor la mai mulți receptori (în afara cazului în care efectuează RPC-uri separate cu fiecare dintre ele)

Grup = colectie de procese care acționează împreună într-o modalitate specifică sistemului sau utilizatorului. Scop: permite proceselor să trateze colecții de procese ca o singură abstractizare => un proces poate trimite un mesaj la un grup de servere fără a cunoaște cîte sunt și unde sunt (caracteristici ce se pot schimba de la un apel la altul) Proprietate cheie: cînd un mesaj este expediat la un grup specific, toți membrii grupului îl recepționează forma de comunicare unul-la mai mulți în contrast cu comunicarea punct-la-punct Dinamicitate (analogie cu organizarea socială!) Grupuri noi pot fi create, grupuri vechi pot fi distruse Un proces se poate alătura unui grup sau îl poate părăsi Un proces poate fi membru la mai multe grupuri în același timp => Sunt necesare mecanisme pentru a administra grupurile și apartenența la grupuri

Implementări ale comunicării în grup 1. Tehnica multi-casting (difuzare multiplă) Crearea unui adrese speciale de rețea (de exemplu, indicare prin setarea biților celor mai semnificativi pe 1), la care ascultă mașini multiple Cînd este expediat un pachet la una dintre aceste adrese, este automat livrat la toate mașinile care ascultă la respectiva adresă Implementarea grupurilor utilizând multi-casting este imediată: asignarea fiecărui grup la adrese multi-cast diferite 2. Tehnica broad-casting (difuzare largă) Pachelete care contin o anumită adresă sunt livrate la toate mașinile Poate fi utilizată pentru a implementa grupurile, dar este mai puțin eficientă: Fiecare mașină primește fiecare difuzare si software-ul său trebuie să verifice dacă pachetul îi este adresat Dacă nu, pachetul este ignorat, dar un anumit timp este pierdut pentru tratarea întreruperii Necesită doar un pachet care ajunge la toți membrii grupului

Implementări ale comunicării în grup 1. Multi-casting 2. Broad-casting, dacă multicasting nu este permis 3. Uni-casting (transmitere punct-la-punct), daca mc sau bc nu sunt permise Expedierea unui mesaj de la un singur expeditor la un singur destinatar Expeditorul transmite pachete separate pentru fiecare membru din grup Pentru un grup cu n membri, sunt necesare n pachete, spre deosebire de un pachet cand este utilizat mc sau bc Deși mai putin eficientă, aceasta implementare este funcțională dacă grupurile sunt mici

Designul comunicărilor în grup Drept cazuri de transmitere de mesaje: Cu buffer vs. fără buffer Cu blocare vs. fără blocare Etc. Opțiuni adiționale Grupuri închise vs. Grupuri deschise Grupuri de semeni vs. Grupuri ierarhice Alte probleme Apartenența la grup Adresarea grupului Primitivele Send și Receive Atomicitate Ordonarea mesajelor Grupuri cu suprapunere Scalabilitate

Grupuri închise vs Grupuri deschise Grupuri închise: În care numai membrii grupului pot trimite mesaje la grup Cei din exterior nu pot trimite mesaje la grup ca tot, deși pot trimite mesaje la membrii individuali Exemplu: O colecție de procese care lucrează împreună pentru un joc de șah pot forma un grup închis; au propriul scop și nu interacționeză cu lumea înconjurătoare Grupuri deschise: fiecare proces din sistem poate trimite la oricare grup Exemplu: grup de servere replicate; este important ca procesele care nu sunt membre (clienții) să poată expedia mesaje la grup

Grupuri de semeni vs. Grupuri ierarhice Grupuri de semeni (Peer Groups) Toate procesele sunt egale. Nici un proces nu este șef și toate deciziile sunt luate în colectiv Grupul este simetric și nu are un punct singular de eșec Daca procesele eșuează, grupul devine mai mic, dar continuă Dezavantaj: procesul de decizie este complicat pentru a decide orice, este necesar un vot ceea ce duce la întârzieri și surplus în timp Grupuri ierarhice Un proces este corodonator și celelalte sunt lucrători Cînd este generată o cerere de lucru fie de către un client extern sau de unul dintre lucrători, ea este trimisă la coordonator care decide care lucrător este cel mai adecvat să efectueze lucrul și i-l expediază Pierderea coordonatorului duce întregul grup la o oprire, dar atîta timp cît funcționează, deciziile se iau fără a deranja pe alții Ex: un grup ierarhic este indicat pentru un program de șah: Coordonatorul consideră situația curentă, generează toate mișcările posibile din aceasta și le trimite lucrătorilor pentru evaluare Ca urmare a evaluării noile situații sunt expediate la coordonator pentru a le evalua Cînd un lucrător nu este ocupat, cere coordonatorului de lucru Coordonatorul controlează strategia de căutare

Apartenenta la grup Anumite metode sunt necesare pentru a crea și șterge grupuri pentru a permite proceselor să se alăture sau să părăsească grupuri Abordări: 1. Există un server de grup la care sunt transmise toate cererile 2. Administrează apartenența la grup într-o modalitate distribuită Într-un grup deschis, un outsider poate trimite un mesaj la toți membrii grupului pentru a-și anunța prezența Într-un grup închis, este necesar ceva similar Pentru a părăsi grupul, un membru trimite mesaj către fiecare membru

Adresarea grupului abordări 1. Fiecare grup are o adresă unică, precum o adresă de proces Permis multicast-ul: adresa de grup poate fi asociată cu o adresă multi-cast Permis broadcast-ul: mesajul poate fi difuzat Numai unicast-ul est permis: necesar o listă de mașini care au procese ce aparțin grupului. 2. Cere expeditorului să ofere o listă explicită a tuturor destinațiilor 3. Fiecare mesaj este expediat la membrii grupului prin una din metodele descrise anterior, dar în plus: Fiecare mesaj conține un predicat (expresie Booleană) de evaluat Predicatul poate include numărul mașinii destinatare, variabilele sale locale și alți factori Daca predicatul este evaluat prin TRUE, mesajul este acceptat Daca este evaluat prin FALSE, mesajul este ignorat Exemplu: expediază un mesaj numai la acele masini care au cel puțin 4M de memorie liberă și sunt dispuse să preia noul proces

Primitivele Send si Receive 1. Unește cele două forme de comunicare: group & point 2 point Send: Parametru - destinație Receive: O adresă de proces, un singur mesaj este trimis la un proces. O adresă de grup (sau o referință la o lista de destinații), un mesaj este trimis la toți membrii grupului Complet cand sosește un mesaj punct-la-punct sau de grup 2. Proceduri noi de bibliotecă: group-send group-receive

Atomicitate Dezirabilă deoarece face programarea sistemelor distribuite mai ușoară Un proces care expediază un mesaj la un grup nu trebuie să-și facă griji ce să facă dacă unul dintre membri nu l-a primit Exemplu - într-un sistem de baze de date distribuite și cu replicare: Un proces expediază un mesaj la toate mașinile care dețin baza de date pentru o nouă înregistrare în baza de date Are certitudinea că data a fost scrisă în toate replicile

Ordonarea mesajelor Ordonarea în timp global: Se așteaptă ca toate mesajele să fie livrate instantaneu și în ordinea în care au fost exepdiate Toate destinațiile obțin toate mesajele în exact acceași ordine Ignoră din motive de conveniență faptul că nu există un timp global absolut! Ordonarea în timp absolut nu este întotdeauna ușor de implementat! Anumite sisteme oferă variațiuni pe această temă. De exemplu: Ordonare în timp consistentă: Daca două mesaje, fie A și B, sunt expediate apropriat în timp, sistemul preia unul dintre acestea ca fiind primul și îl livrează la toți membrii grupului urmat de celălalt Se întâmplă ca cel ales să nu fie cel real, dar comportarea sistemului nu depinde de acesta Mesajele ajung la toți membrii grupului în aceeași ordine, dar ordinea nu este neapărat ordinea reală în care au fost expediate

Grupuri cu suprapunere Deși există o ordonoare în timp în fiecare grup, nu este în mod necesar și o coordonare între grupuri multiple Anumite sisteme suportă ordonarea în timp între grupuri suprapuse, altele nu Implementarea ordonării în timp între grupuri diferite este dificilă