License. Veri Tabanı Sistemleri. Konular. Hareket Özellikleri. Tanım hareket: bir işin mantıksal bir birimi



Benzer belgeler
Lisans. Ayrık Matematik Tanıtlama. Kaba Kuvvet Yöntemi. Konular. Temel Kurallar

Lisans. Ayrık Matematik Yüklemler ve Kümeler. Konular. Tanım. Tanım çalışma evreni: U izin verilen seçenekler kümesi örnekler:

Lisans. Cebirsel Yapı

Lisans. Meslek Ahlakı

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

Lisans. Deskriptif Önermeler

En Güzel Hediyesi Noel

Dağların Kahramanı.

Lisans. Ayrık Matematik. Konular. Önerme Örnekleri. Tanım önerme: doğru ya da yanlış olan bir bildirim cümlesi. Tanım

License. Alan Adları

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

Transaction ve Ortak Zamanlılık. Sibel SOMYÜREK

License. Veri Tabanı Sistemleri. Konular. Uygulama Geliştirme Veri Tabanı Arayüzleri. uygulama kodunda veri işlemleri nasıl yapılacak?

PostgreSQL ve PL/pgSQL

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

Lisans. Ayrık Matematik Çizgeler. Konular. Tanım çizge: G = (V, E) Tanım. c T. Uyar, A. Yayımlı, E. Harmancı

PostgreSQL Veritabanı Sunucusu. HOT, VACUUM ve BGWRITER

«BM364» Veritabanı Uygulamaları

Veri Tabanı ve Yönetimi

Veritabanı Tasarımı. Veritabanı Hareketleri

PostgreSQL ve PL/pgSQL

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

AÇIK ERİŞİM, ORTAK TASARIM, GİRİŞİMCİLİK. Prof. Dr. Şirin Tekinay Mühendislik ve Doğa Bilimleri Fakültesi Dekanı

Üst Düzey Programlama

«BM364» Veritabanı Uygulamaları

SQL TRIGGERS (Tetikleyiciler)

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Dağıtık Ortak Hafızalı Çoklu Mikroişlemcilere Sahip Optik Tabanlı Mimari Üzerinde Dizin Protokollerinin Başarım Çözümlemesi

Ortak Zamanlılık ve Veri Hareketi (Data Transaction)

Entity Freamwork & ADO.Net

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU İNGİLİZCE SEVİYE TESPİT SINAVI KILAVUZU.

KÜP YAPIMI. Küp 6 kenarı eşit uzunlukta olan üç boyutlu bir şekildir. Küp. PROJE GÖREVİ mm boyutlarında bir küp tasarlamak

Bölüm 7: Kilitlenme (Deadlocks)

University Colleges. Çocuuna, ev ödevleri konusunda öyle yardm edeblrsn! Kristensen, Kitte Søndergaard. Publication date: 2010

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

License. Veri Tabanı Sistemleri. Konular. Bağıntı Modeli Dr. E. F. Codd, 1970 veri bağıntılar şeklinde modellenir: α A B C...

DML işlemleri. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı May Öğr. Gör. Murat KEÇECĠOĞLU

EXISTS VE NOT EXISTS fonksiyonları

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

IsatPhone Cihazınızı Güncelleme

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU İNGİLİZCE SEVİYE TESPİT SINAVI KILAVUZU.

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

ACCESS PLATFORMUNDA SQL

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

VT Sistem Gerçekleme Ders Notları- #4

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

Öğr.Gör.Murat KEÇECĠOĞLU 27 May. 28 May Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

VT Gerçeklenmesi Ders Notları-

CHANGE GUIDE BSP Turkey

Oracle Database 11g: Introduction to SQL

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU İNGİLİZCE SEVİYE TESPİT SINAVI KILAVUZU.

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

HIGH SPEED PVC DOOR INSTALLATION BOOK

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

Microsoft SQL Server Sorgulama

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

Öğr.Gör.Murat KEÇECĠOĞLU. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

VERİ TABANI YÖNETİM SİSTEMLERİ. Öğr. Gör. Selçuk Özkan

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

AÇIK VERİ; AÇIK BİLİM Deneyimler ve Yol Haritası. Prof. Dr. Şirin Tekinay

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Liquibase ile Veri Tabanı Değişiklik Yönetimi

1 Temel Kavramlar. Veritabanı 1

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

Tekrar. Veritabanı 2

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

SQL (Structured Query Language)

Ölümcül Kilitlenme. Ölümcül Kilitlenme 5. İşletim Sistemleri

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Veri Tabanı Hafta Dersi

VERİTABANI Veritabanı Yönetimi

Ölümcül Kilitlenme. Ölümcül Kilitlenme Örneği - 1

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU

İçindekiler JPA - Genel Konular...1 Genel Bilgiler...1 JPA Hakkında...1 Temel Kavramlar...3 Kurulum ve Yapılandırma...3 Yapılandırma Dosyası

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Veritabanı Tasarımı. Tablo Değiştirme

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

VERİ TABANI YÖNETİM SİSTEMLERİ I

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU

IDENTITY MANAGEMENT FOR EXTERNAL USERS

VIEW LERDE SQL HINT KULLANIMI

PostgreSQL - Yeni dönemdeki yeri

Veri Tabanı Programlamaya Giriş

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

Transkript:

License Veri Tabanı Sistemleri Eşzamanlı Çalışma H. Turgut Uyar Şule Öğüdücü 2002-2012 You are free: to Share to copy, distribute and transmit the work to Remix to adapt the work c 2002-2012 T. Uyar, Ş. Öğüdücü Under the following conditions: Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial You may not use this work for commercial purposes. Share Alike If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Legal code (the full license): http://creativecommons.org/licenses/by-nc-sa/3.0/ 1 / 45 2 / 45 Konular Hareket Yönetimi Hareket Yönetimi Giriş Sistemin Düzeltilmesi İki Aşamalı Sonlandırma Eşzamanlı Çalışma Giriş Kilitleme Yalıtım Düzeyleri Niyet Kilitleri birden fazla işlemin topluca yapılması gerekebilir bir işlemin yapılıp diğerlerinin yapılmaması tutarsızlık yaratabilir birden fazla işlemin topluca yapılması garanti edilemez en azından değişikliklerden önceki duruma dönülebilmeli Tanım hareket: bir işin mantıksal bir birimi 3 / 45 4 / 45 Hareket Örneği Hareket Özellikleri (bir banka hesabından diğerine para aktarma) UPDATE ACCOUNTS SET BALANCE = BALANCE - 100 WHERE ACCOUNTID = 123 UPDATE ACCOUNTS SET BALANCE = BALANCE + 100 WHERE ACCOUNTID = 456 bölünmezlik ya tam yapılır, ya hiç yapılmaz tutarlılık bir tutarlı durumdan diğer bir tutarlı duruma geçiş yalıtım sona ermemiş bir hareketin işlemlerinin diğer hareketleri etkileyip etkilemediği kalıcılık bir hareket sonlandırıldıktan sonra sistem çökse de verilerin zarar görmemesi 5 / 45 6 / 45

Hareket İşlemleri Hareket Örneği başlatma BEGIN [ WORK TRANSACTION ] sonlandırma COMMIT [ WORK TRANSACTION ] vazgeçme ROLLBACK [ WORK TRANSACTION ] BEGIN TRANSACTION ON ERROR GOTO UNDO UPDATE ACCOUNTS SET BALANCE = BALANCE - 100 WHERE ( ACCOUNTID = 123) UPDATE ACCOUNTS SET BALANCE = BALANCE + 100 WHERE ( ACCOUNTID = 456) COMMIT... UNDO : ROLLBACK 7 / 45 8 / 45 Sistemin Düzeltilmesi Günlük bir hareket sürerken sistemin çöktüğünü düşünün bellek tamponlarındaki veriler diske yazılmamış durumda kalıcılık nasıl sağlanacak? veri, sistemde başka yerde yazılı verilerden türetilebilmeli iç düzeyde günlük her işlemden etkilenen her çoklunun işlemden önceki ve sonraki değerlerini tutar günlüğe önceden yazma kuralı: hareket sonlanmadan önce günlük fiziksel ortama yazılmalı günlük kayıtlarına erişim işlemin doğası gereği ardışıl 9 / 45 10 / 45 Denetim Noktaları Düzeltme Listeleri belli aralıklarla günlükte denetim noktaları oluşturulur bellek tamponlarındaki veriler fiziksel ortama yazılır denetim noktası günlüğe not edilir o an sürmekte olan hareketler not edilir aksaklıktan sonra hangi hareketler geri alınacak, hangileri sonlandırılacak? iki liste oluştur: geri alınacaklar (G), yinelenecekler (Y) t C : günlükte kayıtlı son denetim noktası t C anında etkin olan hareketleri G ye ekle t C den başlayarak kayıtları ileri doğru tara başlayan bir hareketle karşılaşırsan G ye ekle biten bir hareketle karşılaşırsan Y ye geçir 11 / 45 12 / 45

Düzeltme Örneği Düzeltme Süreci t C : G = {T 2,T 3 } Y = T 4 başladı: G = {T 2, T 3, T 4 } Y = T 2 bitti: G = {T 3, T 4 } Y = {T 2 } T 5 başladı: G = {T 3, T 4, T 5 } Y = {T 2 } T 4 bitti: G = {T 3, T 5 } Y = {T 2, T 4 } kayıtları günlük sonundan geriye doğru tara G deki hareketlerin yaptıkları değişiklikleri geri al kayıtları ileriye doğru tara Y deki hareketlerin yaptıkları değişiklikleri yinele 13 / 45 14 / 45 İki Aşamalı Sonlandırma Protokol farklı kaynak yöneticileri var geri alma - sonlandırma sistemleri ayrı etkilenecek veriler farklı kaynak yöneticilerinde ya hepsinde birden sonlandırılacak ya da hepsinde birden geri alınacak eşgüdüm sağlayıcı eşgüdüm sağlayıcı, bütün katılımcılara hareketle ilgili bütün verilerin kayıtlarını kalıcı ortama yazmalarını söyler eşgüdüm sağlayıcı, bütün katılımcılardan hareketi başlatmalarını ve sonucu kendisine bildirmelerini ister bütün katılımcılardan başarılı yanıtı alırsa hareketin sonlandırılmasına karar verir bir tane bile başarısız yanıtı gelirse hareketin geri alınmasına karar verir eşgüdüm sağlayıcı, bütün katılımcılara kararı bildirir 15 / 45 16 / 45 Kaynaklar Eşzamanlı Çalışma Okunacak: Date Chapter 15: Recovery eşzamanlı çalışan hareketler nedeniyle çıkabilecek sorunlar: yitirilen güncelleme kesinleşmemiş veriye bağımlılık tutarsız çözümleme 17 / 45 18 / 45

Yitirilen Güncelleme Kesinleşmemiş Veriye Bağımlılık RETRIEVE p...... RETRIEVE p UPDATE p...... UPDATE p... UPDATE p RETRIEVE p...... ROLLBACK... 19 / 45 20 / 45 Tutarsız Çözümleme Çakışmalar (hesap toplamı: acc1=40, acc2=50, acc3=30) RETRIEVE acc1 (40)... RETRIEVE acc2 (90)...... UPDATE acc3 (30 20)... UPDATE acc1 (40 50)... COMMIT RETRIEVE acc3 (110)... A okuyor, B okuyor sorun yok A okuyor, B yazıyor yinelenemez okuma (tutarsız çözümleme) A yazıyor, B okuyor kirli okuma (kesinleşmemiş veriye bağımlılık) A yazıyor, B yazıyor kirli yazma (yitirilen güncelleme) 21 / 45 22 / 45 Kilitleme Kilit İstekleri kilit tipi uyumluluk matrisi hareketler üzerinde işlem yapacakları çokluları kilitlesinler okuma kilidi (S) yazma kilidi (X) işleri bitince kilitleri bıraksınlar X S - X H H E S H E E yazma kilidi varsa başka hareketlerin her türlü isteği reddedilir okuma kilidi varsa: başka hareketlerin yazma kilidi istekleri reddedilir başka hareketlerin okuma kilidi istekleri kabul edilir 23 / 45 24 / 45

Kilitleme Protokolü Yitirilen Güncelleme hareket, yapmak istediği işleme göre kilit isteğinde bulunur okuma kilidi varsa yazma kilidine çevrilmesi istek yerine getirilemiyorsa meye başlar diğer hareket kilidi bırakınca devam eder sonsuz me RETRIEVE p (S+)...... RETRIEVE p (S+) UPDATE p (X-)...... UPDATE p (X-) 25 / 45 26 / 45 Kesinleşmemiş Veriye Bağımlılık Tutarsız Çözümleme... UPDATE p (X+) RETRIEVE p (S-)...... ROLLBACK RETRIEVE p (S+)... (hesap toplamı: acc1=40, acc2=50, acc3=30) RETRIEVE acc1 (S+)... RETRIEVE acc2 (S+)...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... RETRIEVE acc3 (S-) 27 / 45 28 / 45 Ölümcül Kilitlenme Ölümcül Kilitlenmenin Çözülmesi Tanım ölümcül kilitlenme: hareketlerin birbirlerinin kilitleri bırakmalarını mesi neredeyse her zaman iki hareket arasında yapılabilecekler: farketmek ve çözmek önlemek me grafı bir kurban seç ve öldür 29 / 45 30 / 45

Ölümcül Kilitlenmenin Önlenmesi Kilit Komutları her hareketin başlama zamanı mührü var A hareketinin kilit isteği B hareketinin tuttuğu bir kilitle çelişiyorsa: -öl: A, B den yaşlıysa r, gençse ölür A geri alınıp yeniden başlatılır yarala-: A, B den gençse r, yaşlıysa B yi yaralar B geri alınıp yeniden başlatılır yeniden başlatılan hareketin zaman mührü değiştirilmez okuma kilidi SELECT query FOR SHARE yazma kilidi SELECT query FOR UPDATE 31 / 45 32 / 45 Yalıtım Düzeyleri Serileştirilebilirlik yalıtım azaltılırsa eşzamanlılık artırılabilir değişik yalıtım düzeyleri: serileştirilebilir yinelenebilir okuma sonlandırılanları okuyabilme sonlandırılmayanları okuyabilme seri çalıştırma: hareketlerin biri bitmeden diğeri başlamıyor serileştirilebilir: eşzamanlı çalışmanın sonucu her zaman seri çalıştırmalardan birinin sonucu ile aynı x = 10 A hareketi: x = x + 1 B hareketi: x = 2 x önce A, sonra B: x = 22 önce B, sonra A: x = 21 33 / 45 34 / 45 İki Aşamalı Kilitleme Sonlandırılanları Okuyabilme yalnızca yazma kilitleri hareket sonuna kadar tutulur iki aşamalı kilitleme: herhangi bir kilit bırakıldıktan sonra yeni kilit isteğinde bulunulmaz genişleme aşaması: alınan kilit sayısı artıyor daralma aşaması: alınan kilit sayısı azalıyor iki aşamalı sıkı kilitleme: bütün kilitler hareketin sonunda bırakılır Bütün hareketler iki aşamalı kilitleme protokolüne uyarsa bütün eşzamanlı çalıştırmalar serileştirilebilir. RETRIEVE p (S+)... kilidi bırak...... UPDATE p (X+)... COMMIT RETRIEVE p (S+) 35 / 45 36 / 45

Hayaletler Yalıtım Düzeyi Belirleme Tanım hayalet: sorgu yeniden çalıştırıldığında yeni çoklular ortaya çıkıyor A hareketi bir müşterinin hesaplarının ortalamasını hesaplıyor: 100+100+100 3 = 100 B hareketi aynı müşteriye 200 birimlik yeni bir hesap yaratıyor A hareketi hesabı yeniden yapıyor: 100+100+100+200 4 = 125 Komut SET TRANSACTION ISOLATION LEVEL [ SERIALIZABLE REPEATABLE READ READ COMMITTED READ UNCOMMITTED ] 37 / 45 38 / 45 Yalıtım Düzeyi Sorunları Kilitleme Birimi yalıtım düzeyi kirli yinelemeyen hayalet okuma okuma READ UNCOMMITTED E E E READ COMMITTED H E E REPEATABLE READ H H E SERIALIZABLE H H H kilitleme çoklu değil bağıntı değişkeni biriminde yapılabilir hatta veri tabanı biriminde birim genişledikçe eşzamanlılık azalır çoklular üzerinde alınmış kilitlerin bulunması zor önce bağıntı değişkeni düzeyinde niyet kilitleri alınsın 39 / 45 40 / 45 Niyet Kilitleri Kilit İstekleri Parçayı Okuma (IS): hareket bazı çokluları okumaya niyetleniyor Parçaya Yazma (IX): IS + hareket bazı çoklulara yazmaya niyetleniyor Bütünü Okuma (S): bağıntıda eşzamanlı okuyucular olabilir ama yazıcılar olmamalı Bütünü Okuma + Parçaya Yazma (SIX): S + IX Bütüne Yazma (X): bağıntıda hiçbir eşzamanlı çalışma olmamalı kilit uyumluluk matrisi X SIX IX S IS - X H H H H H E SIX H H H H E E IX H H E H E E S H H H E E E IS H E E E E E 41 / 45 42 / 45

Kilit Öncelikleri Kilitleme Komutları çoklu üzerinde okuma kilidi için bağıntı üzerinde en az IS çoklu üzerinde yazma kilidi için bağıntı üzerinde en az IX Komut LOCK [ TABLE ] table_name [ IN lock_mode MODE ] kilit kipleri: ACCESS SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE ACCESS EXCLUSIVE 43 / 45 44 / 45 Kaynaklar Okunacak: Date Chapter 16: Concurrency 45 / 45