Ağ Altyapısı ve Dağıtılmış İşlem



Benzer belgeler
Ağ Altyapısı ve Dağıtılmış İşlem

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

Wireshark Lab.: DNS. 1. nslookup

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

MCR02-AE Ethernet Temassız Kart Okuyucu

DNS Nedir? HİKMET TÜYSÜZ

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı ĐSTEMCĐ VE SUNUCU MĐMARĐLERĐ

DHCP kurulumu için Client/Server mimarisine sahip bir ağ ortamı olmalıdır ki bu da ortamda bir Domain Controller olmasını zorunlu kılar.

CHAPTER 9. DHCP Server

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

FTP ve Güvenlik Duvarları

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 1

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

ERİŞİM ENGELLEME DOS VE DDOS:

TBİL-407 İşletim Sistemleri BÖLÜM 1 1- İşletim sistemi, kullanıcılar ile donanım arasında yer alan bir yazılımdır. Doğru

Proses. Prosesler 2. İşletim Sistemleri

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

PROSESLER. Proses. Proses

İNTERNET VE BİLGİ AĞLARININ KULLANIMI

Internetin Yapı Taşları

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

Uygulama 6. Sunum 5. Oturum 4. Taşıma 3. Ağ 2. Veri iletim 1

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

BİLGİSAYAR AĞLARI. «Uygulama Katmanı»

BİLGİSAYAR AĞLARI VE İLETİŞİM

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Hazırlayan: Barış Şimşek. Bitirme Çalışması Sunumu. Ocak 2001, Trabzon KTÜ

Bilgisayar Sistemlerine Genel Bakış

Internet in Kısa Tarihçesi

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Ağları - 1 (BİL 403)

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 1

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

INTERNET PROGRAMCILIĞI. Kişisel Bağlantı. Neler Öğreneceğiz? Bağlantı Türleri. Gereksinimler. Modem

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

qmail ile SPAM engelleme Devrim Sipahi Dokuz Eylül Üniversitesi

Toplu İleti Gönderimi

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 8. Ağ Adresi Dönüştürme (NAT-Network Address Translation)

TCP / IP NEDİR? TCP / IP SORUN ÇÖZME


DNS. Linux Yaz Kampı Bolu 2012 Eray Aslan

TBF 110 BİLGİSAYARDA VERİ İŞLEME ve UYGULAMALARI Ha9a- 2 - İnternet

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

Bilg-101. Bölüm 6. Bilgisayar Ağları. Ne Öğreneceğiz? Bilgisayar Ağı Nedir?

Veritabanı. Ders 2 VERİTABANI

01 WASTE Windows Linux ve macos (Sınırlı İşlevsellik)

VPN NEDIR? NASıL KULLANıLıR?

Bilgisayar Ağı Nedir?

Bilgisayar Sistemleri ilk ortaya çıktığında...

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 5. Yönlendiricilerde İşlem İzleme ve Hata Ayıklama

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr

Ağ programlama (Network programming) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 13 1

TCP/IP Modeli. TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

DOD / DEPARMENT OF DEFENCE

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Serdar SEVİL. TCP/IP Protokolü

Alt Ağ Maskesi (Subnet Mask)

Bunyamin Demir, <bunyamindemir at gmail dot com>, webguvenligi.org, 20/01/2011 ORACLE VERĠTABANI TRAFĠĞĠNĠN GÜVENLĠĞĠ

AHTAPOT Merkezi Güvenlik Duvarı Yönetim Sistemi Kontrol Paneli

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Ortam İzleyici Kullanım Kılavuzu

Setup Yardımcı Programı

Sızma Testlerinde İleri Düzey Teknikler. Ozan UÇAR

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

7 Uygulama 6. Sunum 5 Oturum Taşıma. 4 Ara katman- Yazılım ve donanım arası 3. Ağ Veri iletim. 2 Ağ Grubu-Donanım 1. Fiziksel. Uygulama Grubu-Yazılım

Web Servis-Web Sitesi Bağlantısı

Misafirler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Öğr. Gör. Ümit ATİLA

AĞ HĠZMETLERĠ MODÜLÜ 1. TAŞIMA KATMANI PROTOKOLLERİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

İleri Düzey Bilgisayar Ağları

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Sınav tarihi : Süre : 60 dak.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

DNS Servis Yönetimi. Ender Güler HPC Sistem Sorumlusu Ulusal Yüksek Başarımlı Hesaplama Merkezi UHeM

AĞ ve İNTERNET TCP/IP. IP Adresi İNTERNET NEDİR? Standartlar :

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

Ağ Projektörü Çalıştırma Kılavuzu

Bildiğimiz gibi commanda ekranın çok çeşitli sorgulamalar yapılabilir.bunlara örnek olarak

Karel Mobil. Kullanım Kılavuzu KULLANIM KILAVUZU

FINDIK Herkese Açık Filtre

Veri Tabanı-I 1.Hafta

Transkript:

Ağ Altyapısı ve Dağıtılmış İşlem Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Dağıtılmış İşlem Bilgisayar ağlarında dağıtılmış işlem temel olarak iki bağlamda düşünülür: Ağ düzeyi Birlikte (Koşut) İşlem (Parallel Processing) Görev Göçü (Process migration) İstemci-Sunucu (Client-Server) Bilgisayar sistemlerindeki uygulamalara dağıtılmış işlem yeteneğini kazandırabilmek için, bir iletişim altsistemine ihtiyaç vardır. Böyle bir altsistem, kütüklerin kullanım kolaylığında, bilgisayarlar arası iletişime imkan sağlamalıdır. 1 2 Bilgisayarlar Arası Veri İletişimi TCP/IP Protokol Katmanları 3 4

TCP/IP de Veri Gönderimi IP Paket Görünümü 5 6 IP Adreslerinin Noktalı Onlu Gösterimi TCP ve UDP Datagram Görüntüleri 7 8

İstemci/Sunucu Yaklaşımı Socket Sistem Çağrılarıyla İstemci- Sunucu Program İletişimi 9 10 Satır Yankılaması Yapan Sunucu Programı - 1 Satır Yankılaması Yapan Sunucu Programı - 2 [...] /*include*/ #define MAX 80 #define SUNUCU_KAPISI 1490 main(){ char yastik[max]; int fd, sock; /*Connection and Rendezvous descriptors*/ int nb; unsigned long istemci_boyu; struct sockaddr_in sunucu, istemci; sunucu.sin_family = AF_INET; sunucu.sin_addr.s_addr = INADDR_ANY; sunucu.sin_port = htons(sunucu_kapisi); sock = socket(af_inet, SOCK_STREAM, 0); bind(sock, (struct sockaddr *)&sunucu, sizeof sunucu); listen(sock, 5); istemci_boyu = sizeof istemci; while(1) { fd=accept(sock,(struct sockaddr *)&istemci, istemci_boyu); while((nb = read(fd, yastik, MAX)) > 0) write(fd, yastik, nb); 11 12

Satır Yankılama İsteyen İstemci Programı - 1 Satır Yankılama İsteyen İstemci Programı - 2 [...] /*include*/ #define MAX 80 #define SUNUCU_KAPISI 1490 main(int argc, char *argv[]) { int nb, sock; char yastik[max]; char sunucu_adi[max]; struct sockaddr_in sunucu; struct hostent *s_bilgi; sock = socket(af_inet, SOCK_STREAM, 0); strcpy(sunucu_adi, argv[1]); s_bilgi = gethostbyname(sunucu_adi); sunucu.sin_family = s_bilgi->h_addrtype; memcpy(&sunucu.sin_addr, s_bilgi->h_addr, s_bilgi->h_length); sunucu.sin_port = htons(sunucu_kapisi); 13 if((connect(sock,(struct sockaddr *)&sunucu, sizeof sunucu))< 0){ printf("bağlanti yapilamiyor\n"); exit(1); printf("%s sunucusuna bağlanıldı.\n", argv[1]); while((nb = read(0, yastik, MAX)) > 0){ /* Klavyeden oku */ write(sock, yastik, nb); /* Sunucu ya yolla */ nb = read(sock, yastik, MAX); /* Sunucu dan geri al */ write(1, yastik, nb); /* Ekrana yaz */ close(sock); 14 Yankılama Programının Çalışması Little-endien, Big-endien Gösterimleri Sunucu (mars makinası) mars$ sunucu& mars$ İstemci (dunya makinası) dunya$ istemci mars mars sunucusuna bağlanıldı. merhaba merhaba hayat var mı? hayat var mı? soruma cevap ver! soruma cevap ver! 15 16

Sunucu Programın Koşut Hizmet Vermesi Örnek sunucu programında, bir istemci, sunucudan hizmet almaya başladıktan sonra, istemci sonlanmadan diğer istemciler sunucuya bağlanıp hizmet alamazlar. connect() komutu ile bağlanmaya çalışan diğer istemci, listen() komutunun tanımladığı kuyruğa bağlanarak sunucu programın accept() komutuna dönmesini bekler. Bu yaklaşım, istemci programların sunucudan eşanlı hizmet almalarına olanak vermez. Koşut İşlem Yapabilen Sunucu Program Örneği - 1 [...] /*include*/ #define MAX 80 #define SUNUCU_KAPISI 1490 main(){ char yastik[max]; int fd, nb, sock; unsigned long istemci_boyu; struct sockaddr_in sunucu, istemci; sunucu.sin_family = AF_INET; sunucu.sin_addr.s_addr = INADDR_ANY; sunucu.sin_port = htons(sunucu_kapisi); signal(sigchld, SIG_IGN); 17 18 Koşut İşlem Yapabilen Sunucu Program Örneği - 2 SIGCHLD iletisi sock = socket(af_inet, SOCK_STREAM, 0); bind(sock, (struct sockaddr *)&sunucu, sizeof sunucu); listen(sock, 1); istemci_boyu = sizeof istemci; while(1) { fd=accept(sock,(struct sockaddr *)&istemci,&istemci_boyu); if(fork() == 0) { /* Bu kesimi oğul sunucu görev çalıştırır */ while((nb = read(fd, yastik, MAX)) > 0) write(fd, yastik, nb); exit(0); else /* Bu kesimi ata sunucu görev çalıştırır */ close(fd); 19 UNIX te görevlerin sonlanmasına sağlayan exit() komutu, ata göreve signal komutu ile SIGCHLD iletisini gönderir. Ata görev, signal() komutu aracılığıyla SIGCHLD iletisini almadan oğul görevin görev iskeleti silinmemektedir. UNIX te görev iskeletine sahip sonlanmış görevler, hortlak görev (zombie process) olarak adlandırılır. Hortlak görevler, ata görevleri sonlanana kadar sistemde kalır. UNIX te tüm görevlerin ilk atası init görevidir. Bir görev, yarattığı oğul görevler sonlanmadan sonlanırsa, oğul görevler, yetim (orphan) durumuna düşer. UNIX te, yetim görevler, init görevini ata olarak alırlar. 20

Connectionless Modda İstemci ve Sunucu Çağrıları Connectionless Modda İstemci ve Sunucu Program Yapıları sendto(sock, buf, buf_len, flags, address, address_length); recvfrom(sock, buf, buf_len, flags, address, &address_length); sock: socket() çağrısının döndürdüğü gösterge (rendezvous descriptor), buf: Aktarıma konu olan veri yastığı göstergesi, buf_len: Aktarıma konu olan veri yastığı boyu, flags: Özel seçenek göstergesi, genelde 0, address: sendto() bağlamında verinin gönderileceği hedef uygulama, recvfrom() bağlamında verinin alınacağı kaynak uygulama, address_length: Uygulama adresinin boyudur. 21 22 Connectionless Modda Sunucu Örneği - 1 Connectionless Modda Sunucu Örneği - 2 [...] /*include*/ #define MAX 80 #define SUNUCU_KAPISI 1490 main() { char yastik[max]; int nb, sock; unsigned long istemci_boyu; struct sockaddr_in sunucu, istemci; sunucu.sin_family = AF_INET; sunucu.sin_addr.s_addr = INADDR_ANY; sunucu.sin_port = htons(sunucu_kapisi); sock = socket(af_inet, SOCK_DGRAM, 0); bind(sock, (struct sockaddr *)&sunucu, sizeof sunucu); istemci_boyu = sizeof istemci; while(1) { while ((nb = recvfrom(sock, yastik, MAX, 0, (struct sockadd *)&istemci, &istemci_boyu))>0) sendto(sock, yastik, nb, 0, (struct sockaddr *)&istemci, sizeof istemci); 23 24

Connectionless Modda İstemci Örneği - 1 Connectionless Modda İstemci Örneği - 2 [...] /*include*/ #define MAX 80 #define SUNUCU_KAPISI 1490 main(int argc, char *argv[]){ int nb, sock; unsigned long sunucu_boyu; char yastik[max]; char sunucu_adi[max]; struct sockaddr_in sunucu, istemci; struct hostent *s_bilgi; istemci.sin_family = AF_INET; istemci.sin_addr.s_addr = INADDR_ANY; istemci.sin_port = 0; /*Kapı Numarasını sistem belirlesin*/ sock = socket(af_inet, SOCK_DGRAM, 0); bind(sock, (struct sockaddr *)&istemci, sizeof istemci); strcpy(sunucu_adi, argv[1]); s_bilgi = gethostbyname(sunucu_adi); sunucu.sin_family = s_bilgi->h_addrtype; memcpy(&sunucu.sin_addr, s_bilgi->h_addr, s_bilgi->h_length); sunucu.sin_port = htons(sunucu_kapisi); sunucu_boyu = sizeof sunucu; while((nb = read(0, yastik, MAX)) > 0){ sendto(sock,yastik,nb,0,(struct sockaddr *) &sunucu, &sunucu_boyu); nb = recvfrom(sock,yastik,max,0,(struct sockaddr *) &sunucu, &sunucu_boyu); write(1, yastik, nb); close(sock); 25 26 Yankılama Programının Connectionless Modda Çalışması Alan Adı Sistemi (DNS-Domain Name System) Sunucu (mars makinası) mars$ sunucu& mars$... mars$ istemci localhost localhost sunucusuna bağlanıldı. bir sinyal aldık bir sinyal aldık ne yapacağız? ne yapacağız? off, vazgeçtim boşver! off, vazgeçtim boşver! İstemci (dunya makinası) dunya$ istemci mars mars sunucusuna bağlanıldı. merhaba merhaba hayat var mı? hayat var mı? soruma cevap ver! soruma cevap ver! IP numaraları yerine, bilgisayarların simgesel adlarla (hostname) tanımlanabilmesi Internet kullanımını kolaylaştırır. Simgesel adlardan, IP numaralarına dönüşümü DNS sistemi sağlar. DNS sisteminde, Internet alan adları (domain names) hiyerarşik bir ağaç yapısı şeklinde ele alınır. Ağacın yönetimi, en tepede ABD de INTERNIC tarafından ele alınır. INTERNIC, alt dalların yönetimini yerel otoritelere bırakır. 27 28

Alan Adı Sistemi Adlandırma Sıradüzeni DNS sunucular ve resolver Herbir Internet alanı (domain) ile ilgili bilgilerin saklanması ve yönetimi, ilgili Internet alanı için ayrılmış olan DNS sunucu tarafından yapılır. Herbir Internet alanı için bir birincil (primary) DNS sunucunun yanında, ikincil (secondary) DNS sunucular atanabilir. DNS sunucular üzerinde iki çeşit sorgu yapılabilir: Hostname-to-IP number IP number-to-hostname Resolver yazılımı, DNS istemcisi olarak çalışıp, DNS sunuculardan adres sorgulaması yapar. Adres sorgulaması, resolver tarafından özyineli veya özyineli olmayan istem şeklinde DNS sunucuya gönderilir. 29 30 Alan Adı Sunucuları Arası İşbirliği Düzeneği Özyineli DNS Sorgusu Özyineli olmayan sorgulara, DNS sunucular cevap olarak başka DNS sunucu adreslerini döndürürler. Özyineli sorgularda, DNS sunucu aranan IP adresini veya makinanın bulunamadığı uyarısını döndürür. 31 32

DNS İstemci ve Sunucu Önbellekleri Network File System (NFS) ve Network Information Service (NIS) Adres dönüştürme işlemini hızlandırmak ve bazı sorguları engellemek için uygulama programları, DNS resolver ve DNS sunucular ayrı ayrı önbellekler bulundurabilirler. Referans: http://en.wikipedia.org/wiki/domain_name_system 33 UNIX işletim sistemi, ağ düzeyi kütük paylaşım hizmetini, Network File System (NFS) sistemiyle vermektedir. NFS sistemi, bir UNIX makinasının yerel diskindeki kütükleri, başka bir UNIX makinasının erişimine açmaya imkan verir. Windows ta ağ düzeyi kütük paylaşımı, File and Printer Sharing servisleri ile yapmaktadır. Windows tan, bir UNIX makinasında saklanan kütüklere erişmek için, Samba sistemi kullanılabilir. NFS ile uzaktan erişime açılan kütüklere, erişim haklarını belirlemek için, Network Information Service(NIS) kullanılır. NIS sistemi, bir ana makinada saklanan UNIX kullanıcı bilgilerinin, başka makinalara paylaştırılmasına ve kullanıcıların bu makinalara girişine imkan sağlar. 34 NFS Bağlamında Uzak Kütük İşlemlerinin Ele Alınışı Uzak Alt Kılavuzun Yerel Kılavuz İçinde Sanal Konumu 35 36

Uzak bir Alt Kılavuza mount Programı ile Bağlanılması Uzak Kütüklere İlişkin Sistem Çağrılarının Ele Alınışı 37 38 NFS-VFS ile Farklı Kütük Yönetim Sistemlerine Erişim Dağıtık Protokollere Örnek: Distributed Transaction Processing Dağıtık veritabanı (Distributed Database) sistemlerinde, veri, birden fazla veritabanı sunucusunda saklanır. Bir transaction, ağ üzerinden birden fazla veritabanı sunucusunda işletilebilir. Bir transaction un gerektirdiği işlemler bitirildiği zaman, transaction a katılan bütün sunucular üzerinde commit işleminin yapılarak sonuçların kalıcı olarak dağıtık veritabanlarına yazılması gerekir. Eğer herhangi bir nedenle, bir sunucuda yapılması gereken işlemler yapılamazsa, transaction abort edilmelidir. Commit/abort işlemlerinin, sunucuların çakılması, ağ bağlantısının kopması gibi durumlarda, veri bütünlüğünü bozmadan yapılması önemli bir problemdir. 39 40

İki-aşamalı Onaylama (Two-Phase Commit) Protokolü İki-aşamalı Onaylama Protokolü İki aşamalı onaylama (2PC) protokolü, dağıtık sistemler üzerinde, düğümlerin bir transaction konusunda ortak commit/abort kararına varmasını sağlayan bir dağıtık algoritmadır. Protokole katılanlar: Coordinator: Protokolü yöneten düğüm Cohort: Protokole katılan diğer düğümler Protokolün aşamaları: Commit-Request aşaması Commit aşaması Coordinator Commit-Request Aşaması Commit Aşaması Query to commit Aggrement(Yes)/Abort(No) Commit/Rollback Acknowledgement Cohort 41 42 İki-aşamalı Onaylama Protokolü İki-aşamalı Onaylama Protokolünün Problemleri Coordinator, Query-to-commit gönderdikten sonra, bir cohort çakılırsa, coordinator timeout sonunda abort gönderir. 2PC, bloklayan bir protokoldür. Bir cohort mesaj bekleme sırasında sonsuz bekleme durumuna düşebilir. Eğer bir cohort, agreement mesajını gönderdikten sonra, coordinator çakılırsa, bu cohort, başka bir cohort tan transaction sonucunu öğrenene kadar beklemek zorunda kalır. 43 44

Üç-aşamalı Onaylama (Three-Phase Commit) Protokolü Üç-aşamalı Onaylama Protokolü Üç-aşamalı onaylama (3PC) protokolü, 2PC protokolünün eksiklerini gidermek üzere tasarlanmıştır. Bu protokol, aşağıdaki durumlarda, işlevsel olan sunucuların bir transaction hakkında karar vermesini sağlar ve bloklanmayı engeller: Commit işlemi sırasında coordinator veya cohort lardan birinin veya birkaç tanesinin çökmesi durumunda Bazı sunucuların ağının erişilemez olması durumlarında 45 46 Üç-aşamalı Onaylama Protokolü Referanslar http://en.wikipedia.org/wiki/two-phase_commit_protocol http://en.wikipedia.org/wiki/three-phase_commit_protocol http://ei.cs.vt.edu/~cs5204/sp99/distributeddbms/duckett/tpcp.html http://ei.cs.vt.edu/~cs5204/sp99/distributeddbms/sreenu/3pc.html 47 48