Veritabanları için özgün harddisk partitionu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Herkese selamlar,

Undefined arkadaşımızı tebrik ediyorum. Ne yazık ki bu tür fikirleri ortaya atabilen kişi çok az, yada ben az rastladım. Ben DOS'tan örnek vererek başlamak istiyorum.

DOS'ta FAT'de (örneğin 1.44 diskte 80 sektör galiba hay Allah tam rakamını hatırlayamıyorum, kocadık artık kocadıııık... :) :lol: )
vardı. Biz Key disketler yapardık program kopyalanmasın diye. DOS interrupt'ı ile 81. sektöre format atar birşeyler yazardık. Bu disket kopyalanamaz olurdu :)

Şimdi, şimdiki DB'ler Tek bir file halinde duruyor zaten :) Onlarda sürekli birbirini takip edr biçimde yazılıyor (Genelde) eğer bir fragmantasyon olursa Defrag gibi yazılımlarla bunlar bir araya getiriliyor ve DB planlamasında DB boyut büyümesini doğru şekilde tahminleyip verirseniz bu kayıplar minimuma iniyor. Sistem alt kısma (low-level'a indikçe) hızlanıyor ama tekrar eden işler sebeiyle üst tarafta yavaşlamaya neden oluyor.

Yazdıklarınızı (hekesin yazdıklarını) okudum herkes bildiği doğruları paylaşıyor. Ne güzel ! Bilgi ve sevgi paylaşıldıkça büyür, üzüntü keder hüzün korku paylaşıldıkça azalır :)

Sorularına bildiğim kadarı ile yanıt vereyim,

S : Transactionın karışıklılığa yol açmazmı ?
C : Açmaz yıllardır kullanılan bir yöntem ve problem oluşmuyor (Microsoft'ta oluyor, onlar olmuyor diyor ama oluyor )

S : Mesela commit olmamış bir stok çıkışı depodaki malların fazla gösterilmesine sebep olmazmı ?
C : Olmaz çünkü normalde senin erişme mantığına, ve Lock mantığına göre değişir. Eğer Lock mantığın Table Lock ise ve Exclusive ise senin transaction'ın başladığında o table'ı kimse açamaz/okuyamaz, işlem yapamaz bu sebeple transaction kapanana kadar kimse erişemez ve bekler.

S :Yoksa mantıksal düzeyde mal çıkışı olduğu varsayılırmı ?
C : Bkz. Transaction Isolation Level ve Locking işlemleri.

S : Varsayılsa bile rollback yapıldımı yine karışıklık çıkmazmı ?
C : Çıkmaz çünkü start transaction dendiği anda sistem table'ın o andaki durumunun bir kopyasını saklar (mantıksal olarak saklar, aslında senin yaptığın işlemler başka yere yazılır.)

S : Ayrıca bu işin ne kadarı client'a ne kadarı server'a düşer ?
C : Transaction'da client'a hiç iş düşmez client durmadan yaz çiz bul ara ekle filan der, o sırada Server deli gibi koşuşturur :)

S : Hangi sıklıkta commit yapılması lazım ?
C : Tamamen yaptığın işe bağlı :) Bazen işin bitene kadar yapmazsın, bazen ise işlemleri bölümlerdirirsin bu şekilde yaparsın. Örneğin bir müşteri için bir takım ödeme planı oluşturup, eşleştirme yapacaksın. Bu durumda kimsenin o müşteriye ait bilgilerini ellememesi gerekir. Bu durumda transaction müşterinin son kaydı yapılana kadar kesilmemesi gerekir. Ancak bunu bin tane müşteriye uygulayacaksan, diğer kullanıcılara nefes almaları için fırsat tanıman gerekir. Bu sebeple her müşterinin işi bittiğinde commit deyip bir sonraki müşteriye geçerken tekrar start transaction demen gerekir.

S : Sıklık süresini belirleyen kriterler nedir ?
C : Bkz. üst taraftaki açıklamalar.

S : Bu sorunlarla karşılaştıysanız nasıl çözüm yolları geliştirdiniz ?
C : Allah Allah ne taklalar attık :) Öğrenene kadarda canımız çıkmadı değil hani ve amacımızda bu sorunlarla karşılaşanlara bir yardım eli uzatmak.

Tavsiyem bu fikrinizi biraz daha farklı yönlerde pişirebilmek ben de düşüneceğim. Belki bir farklı yön bulabiliriz. Sanırım bu listedeki aktif arkadaşlar da eminim ki düşünecekler. Bu fikri veya bu fikirden doğan diğer fikirler bir yerlerde bizlere yardımcı olacak.

Sevgiler,

Kolay gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Fikir bencede süper. Sondan başlarsam. Ben FB/IB kullanıyorum.Tranaction çeşitleri vardı 3 tane.Şimdi isimleri aklıma gelmiyor.Benim sürekli kullandığım.Eğer ben commitretaing dersem o ana kadar yaptığım değişiklikler (delete,insert,update) SERVER tarafından gerçek database e ekleniyor. Yani commit işlemini kullanıcının keyfi biliyor. Bu Setrver/Client mimari için şart. çünki kayıt için çok fazla veri transferi olması gerekir.Özellikle master detail işlemi sırasında.LAN da bi kopukluk olursa bilgi bütünlüğü bozulabilir.Bu yüzdende bu işi SERVER a yıkıyorlar.
Şahsi fikrimi sorarsan. Bence Diske yazma işlemini İşlwtim sistemine bırakmak yeterli.Sorumluluk bana ait değil.Kotrol bana ait değil. Yanılmıyorsam MSSQL için işletim sistemi bir diske, MSSQL Server programları bir diske DATABASE File larda başka bir diske diye tavsiye ediyorlarmış. Bence sadece database leri bir diske atmak yeterli.Bu diski SCSII seçersende sanırım güvenlik ve performansda oldukça yeterli sanırım. hız içinde rpm ler 15000 e kadar çıktı. Hatta IDE ler içinde 10000 rpm ler başladı.
güvenlik için çoğu database manager ların desteklediği miror özellikleri var. FB için söyliyebilirim (FB kullandığım için biliyorum). 3. bir diske yönlendirebilirsin bu mirror olayını anlık yedek oluşmuş olur.
Korkarım hevesini kırar gibi bir yazı oldu. Ama fikrim bu. FireBird projesine dahil olursan eminimki çok çok faydalı olursun.En azından şöyle diyebilirim. Ben bu projede bir TÜRK olduğu için gurur duyarım.
FB tüm windows linux polaris ve sun gibi işletim sistemlerini destekliyor.bence bunun üzerine gidersen arada çok fazla bölümü atlamış olursun. bu guruba dahil olduğun içinde destekçin yorumcun daha fazla olacaktır.
açık konuşmak gerekirse, senin bu düşüncen konusunda çok fazla destek bulamayabilirsin gibi geliyor bana.Kendi adıma konuşmam gerekirse, benim desteğim öneride bulunmak olur, buda olsun şuda olsun gibi.yazılımında tık çıkmaz çünki bilgim yok.bu konu uzmanlık ister ve ben uzman değilim.Bildiğim konular sınırlı.
Amacım heves kırmak değil kesinlikle,aksine desteklemek. Ama Fahretin,Recep'in dediği havanda su dövmemekde lazım.Sıfırdan bir DataBase yazmak bencede bu günlerde gereksiz. Ama şunu kesinliklede isterim. FireBird ün 2 sürümü senin başlatmış olman. Bu hepimize gurur vereceğine eminim
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Kuri_TLJ ve freeman35 e yaptıkları yorumlardan dolayı çok teşekkür ediyorum. Çok yardımcı oldular. Allah razı olsun...

Ben transactionu kavramaya çalışmamın nedeni fiziksel olarak VT den ne beklemesini anlamaktı. Ana hatlarıyla anladım sanırım. Beni bu konuda aydınlatan arkadaşlara tekrar teşekkür ediyorum.

İlk uzun yazımda doğruların sorgulanabileceğini yazıyordum. Gördüğüm kadarıyla sorgulanıyor da. Ama birkaç şey daha söylemem lazım. 10 tablolu bir veritabanı için 10 tane harddisk alıp 10 tabloyu da ayrı harddisklere atsanız da veriye ulaşma metodu yine dosyalama mantığıyla olacaktır. Hız artmaz mı derseniz ? Tabi ki artar. Ama daha fazla hız göz çıkarmaz :) Ayrıca tasarım yaparken hem minimum hem max konfigürasyonlu sistemleri gözetmek zorundayız. Özgün partiton sitemi 10 harddiskli bir sistemde de kullanılabilir. Güvenlik konusunda miror olayıda minimum sistemlerde mümkün olmayabilir. Ayrıca miror alırken sistem çok azıcık da olsa performansta düşüş olur.(tabi iki harddiskler aynı veriyi senkronize şekilde yazabiliyosa iş değişir) Zaten özgün veritabanı parititonu mantığıyla mirorlama geliştirilebilir. Teknolojiler biribriyle çakışmıyor anlayacağınız.

Veriyi diske yazma işlemi işletim sistemine bırakılması gerekiyor demişsiniz. Benim söylediklerimle burda çelişen bişey yok. Zaten veriyi harddiske device control apileriyle yazılacak. Ama dosya içine yazılmayacak sadece. Sanırım Korumalı modda int13h gibi disk işlemlerine yürüten low-level bios kesmeleri çalışmıyor. İlk uzun yazımda bahsettiğim gibi VT ‘yi platformdan bağımsız kılmak için veri yazımını işletim sisteminin tekelinden kurtarmak şart. İşletim sistemi sadece veritabanın düşünemez. İşletim sistemi genele hitap ettiği için herkesin ihtiyacını ortak bir teknolojiyle karşılamalı. Bu da dosyalama zaten... İşletim sistemi bizi düşünmüyorsa biz kendimizi düşünürüz ve kendi çözümlerimizi geliştiririz...


Siz FB gibi bir open source VT da bir “Türk” ün görev almasıyla gurur duyarım demişsiniz. Ama akıllı olan ve vatanını seven bir “Türk” böle bişey yapmaz. Çünkü biliyordur ki ülkesinin ekonomisi daha emekliyordur. Ve kendisini sömüren ülkelerin ayağına beleş teknolojiler sermez... Tam tersini yapmaya çalışmak daha manıklı olduğunuda gözden kaçırmaz. Yani büyük ülkelerinin refah içinde yaşayan insanlarının ayağımıza serdiği teknolojilerden faydalanmak. Bu FB olur (zaten kısaltmasında hayır yok. Ama açılımı iş görüyo bayağ.. :) ) mysql olur postregsql olur. Bu tür programlara bakarak Amerika yı keşfetmemiş olucağız sadece. Yani onları yakalamış olucaz.. Taklit etmeyi kastetmiyorum. Taklitçiliklede ülke bir yere gelmez. Mevcut teknolojilerin mantığını kısa yoldan kavramak dersek daha doğru olur. Neyse buda apayrı bir tartışma konusu :)
Özet olarak ben open source bir projeye dahil olmayı ne ülke için nede proje geliştircek olanlar için hayırlı görmüyorum.

Sevgiler, saygılar....
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Bu proje ne oldu, öğrenebilir miyiz?
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

O kadarda parlak bir fikir olmadığı anlaşıldı. Şu an firebird'ün linux sürümü zaten bu işi yapıyor. Oracle'ında yaptığını duydum.
Ama zamamında iyiki uğraşmışım. Bununla ilgili şeyler araştırırken birçok şey öğrendim. Mesela RDBMS lerin 30-40 senelik akademik, bilimsel çalışmaların ürünleri oldukları gibi :D Ayrıca Forumda abilerimle ilk bu konu vesilesiyle tanışma imkanı bulmuştum, buda cabası ;)

Abi nerden buldun çıkarttın bunu. Nostalji yaşadım valla...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

rsimsek yazdı:o kısma erişecek program için işletim sitemini de veritabanını da yeniden yazmak gerekecek:(

bu arada antiparantez çok şatafatla sunulan windows longhorn un winfs diye yepyeni bir dosya sitemi ile geldiği.

fat12 / fat16 / fat32 / ntfs4 / ntfs5 / ext2 /ext3 /resizefs ve winfs ???
Madem eskiye özlem duyduk (nostalji) 3 yıl önce başlayan vista hâlâ reklamlarda devam etmekte :?
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

undefined yazdı:Nerden buldun çıkarttın bunu. Nostalji yaşadım valla...
Sohbet'teki yeni moderatorümüz ve kıdemli üyelerimiz başlığına imrenerek bakıyordum. Bakalım kimmiş yeni mod'umuz diyerek, Arama'ya tıkladım ve 'yazar ara' dedim... Yalakalık olarak algılamayın; haketmişsiniz...
Cevapla