| undefined | 07.10.2003 - 17:00:57 |
| Konunun başlığında bahsettiğim gibi hiç böyle birşey duydunuzmu ? Yani veritabanı sistemi, FAT32/NTFS/Extfs gibi parititon sistemlerinden bağımsız olarak kendi table ve indexlerini harddiskin bir partitionunu kendine özgü bir biçiminde formatlayarak orda depolayacak. Böyle bir teknoloji varmı ? Eğer yoksa veya bu denenmemiş bir teknoloji ise böyle bir proje başlatmak isterim. Proje hakkında birkaç şey düşündüm. Vereceğiniz cevap ve yorumlara göre detaylarını sizinle paylaşmak isterim. | |
| rsimsek | 07.10.2003 - 17:10:11 |
| 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 ??? | |
| mussimsek | 07.10.2003 - 17:16:35 |
| Ben de hiç duymadım ancak Recep abinin dediklerine katılıyorum. Çok ciddi iş yükü getirecek ve çokta gerekli olmayan bir olay.
Ama ben öğrenmek adına biraz bu işleri kurcalamak istiyorum, vaktimde var diyorsanız neden olmasın. Kolay gelsin. | |
| undefined | 08.10.2003 - 19:43:40 |
| Gelen yorumlardan anlıyorumki biraz işi detaylandırmak gerekiyor. İlk önce söylemek gerekirki, işletim sisteminin yeniden yazılmasına gerek yok. Partition silme/düzenleme gibi işlemler windows apileriyle yapılabiliyor.(bunun için hazır apiler yok tabi. Harddiskten veri yazma/silme fonksiyonlarını kullanmak gerekir) Bunu internetten araştırdım. Birkaç projeyi inceledim. Ayrıca inanmassanız, bu konuda partition magic diye çok ünlü bir programı örnek gösterebilirim :)
Ama yeni bir veritabanı motoru yapılması gerekir. Zaten ben proje derkende kastettiğimde buydu... Ayrıca Böyle bişeyin gerek olmadığını söylemişsiniz. Hemen ilk bakışta aklınıza yatmaması normal birşey ama biraz kafa yorunca mantıklı geliyor. Biraz ön çalışma yaptım. Yazının devamını okuyun lütfen. [u:76f804529c]Özgün bir database partitionun avantajları :[/u:76f804529c] *Hız Klasik dosyalama sisteminde veriye ulaşma şöyle olur. (Korumalı modda) Kullanıcı --> Veritabanı motoru --> api --> partition table(keyin CHS(cylinder,head,sector) adresi öğrenilir) ---> key --> partition table (Verinin keyden alınan chs olmayan adresinin chs si alınır) --> veri (table içinden) Özgün bir db partitionda : Kullanıcı --> Veritabanı motoru --> api --> Partition table 'ın içinde verinin direk chs adresini gösteren keyler--> veri (Paritionun veri alanındaki tabledan ) Yukarda yazdıklarımdan anlayacağınız gibi VT parititonda dosya diye bir kavram yok. Sadece veri var. Ve bu veriyi gösteren keyler direk dosya nın CHS adresini gösteriyor ve bu sayede klasik dosyalama sisteminin veriye ulaşımdaki işlem fazlalığı kısalmış oluyor. Buda hızı olumlu bir şekilde etkiler. Ayrıca minimum fragmantasyon sağladığı için performansta artış olur. ( Detay için yazının devamını okuyun) * Güvenlik Veriler ayrı bir partitionda olduğu için ve dosya mantığıyla bilgiler muhafaza edilmediği için verilerin dokunulmazlıkları daha fazladır. ( Tabi paritionlarla uğraşan psikopat backdoor ve trojanlar yazılmazsa. Zaten kesin güvenlik diye birşeyden bahsedilemez) * Çok platformda çalışma Bugün en iddialı işletim sistemleri bile birbirlerinin partition sistemlerini tam anlamıyla tanımıyor. Şimdi kafanızdan " hayır hatan var Linux hepsini tanıyo" diye birşey geçtiğini duyuyorum. Ama öyle değil. Şu an linuxun bile NTFS desteği tam sağlıklı bir şekilde çalışmıyor. Sourceforge.com da hala geliştirme aşamasında. Şu an makinanızda NT veya Xp kurmuşsanız primary paritionunuz NTFS dir. Ve VT dosyalarınız orda kuruluysa ve VT motorunuzun linux sürümüyle oraya ulaşmaya çalışıyorsanız hiç ulaşamayacaksınız veya ek programları kullanıp ulaşacaksınız ama tam randıman elde edemiyeceksiniz. Bu sadece bir örnek. İlerde Micro(p)soft un abudik gubidik bölümleme sistemleri çıkarıcağı söyleniyo. O zaman işler dahada fazla karışabilir. Böyle bir karışıklılığa meydan vermemek için, çok platformda çalışacak bir veritabanı motorunun, verileri mümkün olduğunca paltformadan bağımsız bir şekilde tutması gerekir. Bu da özgün bir partition sistemiyle mümkün olabilir... * Minimum Fragmantasyon Klasik dosyalama sistemlerinde dosya silme/yazma/yeniden boyutlanma gibi işlemler zaman geçtikçe dosyaların sabit disk yüzeyinden parçalanmasına yol açar. Bunun adı fragmantation dır. Bunun terside defragmantationdır. Hatta windowsun defrag isimle programını hepimiz biliriz. Fragramtasyon oluşan bir bölümde dosyaların sahip olduğu veriler "fiziksel" olarak ardışık dizilmezler, dağınıktırlar.Tabi "mantıksal" olarak windows size verileri ardışık olarak sunar ama performansta düşme olur. Özgün VT partitionunda böyle bir sorun minimuma indirilir. Çünkü verilerimiz harddiskte diğer dosyalarla harman olmaz. Şunuda unutmamak gerekirki fragmantasyon olmamasıda pek olası değildir. Çünkü verilerde sürekli şekilde yazılır/silinirler. -------------------------------------------- Yukarda yazdıklarım sadece teorik şeylerdir. Hepsinin doğrulu sorgulanabilir. Forumdaki bilgili arkadaş ve abilerin bilgilerini paylaşmak niyetindeyim. Recep abiye ve Mustafa beye ilgilendikleri için teşekkür ediyorum. Fahrettin beyinde görüşlerini öğrenmek isterim. Zaman ayrıdığınız için Allah sizden razı olsun... (Bir forum için uzun bir yazı oldu kusra bakmayın) | |
| rsimsek | 09.10.2003 - 11:01:01 |
| Öncelikle detaylı araştırmaların için tebrik ederim. Her ne kadar hepsini okumasam da (çünkü Sn.Süleyman Demirel de çok hızlı okurmuş, yazının başından ve sonundan bir iki cümle ile ne demek istediğini anlamak gayet kolay :) ) anlaşılan o ki; sen bu yola baş koydun :D
Diskte istediğin track sektöre konumlanırken işletim sisteminin tanıdığı kısmın dışına çıkabilecek mısın? Yoksa partition magic i ben kullanıyorum ve çok da beğeniyorum. Ama onun yaptığı sadece Partition Table i değiştirmek, ve gerekli değişiklikleri yaptıktan sonra da tanımlanan kısmı formatlamak vs. Dikkate etmek lazım ki; önce ulaşılabilen PT yi uygun şekilde düzenledikten sonra o bölgeye/kesime ulaşılabiliyor. Ama yine de hevesini kırmak istemem. Sadece bildiklerimi yazdım. Belki başka low-level işlemlerle ulaşmak mümkündür. Ama başta dediğimin arkasındayım; o iş için oluşturacağın fonksiyon ve procedurler senin için yeni bir işletim sistemi demektir. Yani mevcut işletim sistemi o bölgeye ulaşamıyacaktır! diye düşünüyorum | |
| fahrettin | 09.10.2003 - 11:20:39 |
| Estağfirullah, arada insan daldi mi uzun yazdığını birince farkedebiliyor. Benim de başıma geliyor :)
Düşüncelerinizi ve bu konudaki hevesinizi takdir ediyorum. Bu heves, size, bize, ülkemize er ya da geç birşeyler katacaklar... Veritabanı projesi konusuna gelince: Amatör olarak 16 yıldır, profesyonel olarak da 9 yıldır yazılı geliştirmekteyim. Bu süre içinde konu ile ilgili edindiğim ve aktarabileceğim önemli bir tecrübe şu ki: Birilerinin yaptığı hiç bir sistem dışardan göründüğü kadar kolay olmuyor. Tabi bunu kendime de hala söylüyorum. Yani daha geçen sene Almanya'daki bir projede Alman bir firmanın yıllardır çalışan uygulamasını çok kısıtlı bir dönemde değiştirmek zorunda kladık. Ben aslında biraz önce aktardığım sebepten dolayı taraftar değildim. Zira dışardan kaba hesaplar yapınca ya aslında bu işi çok kolay kıvırırız dememize rağmen göremediğimiz çok şeyin olduğunu tahmin ediyor ve girmek istemiyordum. Ama şartlar öyle gelişti biraz da gaz verdiler. Biz de tab icanım biz yaparız gösterelim Türkün gücünü Almanlara derken daldık işe.. Şubat'ta başladığımış iş Allah'a çok şükür kü temel işleviniz gerekil olduğu bahar ve yaz dönemi içinde yerine getirdi ve alnımız ak bir şekilde çıktık gibi ama... işten hala kurtulamadık. Uygulamanın kemale ermesine daha çok zaman var.... Neyse aslında çok yakın bir örnek olmadı belki yazmaya başlayıca dalıp gidiyoruz işte... Bir veritabanı moturu geliştirmek kolay iş değil... Bunu mutlaka siz de biliyorsunuz.... Partition konusu ile bulduğunuz güzel fikri bir veritabanı moturunda avasntaja dönüştürme fikri de güzel fakat ticari değil. Benim samimi olarak tanıdığım farklı iki kişi farklı zamanlarda bu işe girdiler. Veritabanı motoru geliştirmeye kalkıştılar. ITU Bilgisayar mühndisliğinden mezun tekbnik olarak iyi olan arkadaşımın işi caha aşlangıç aşamalarında kaldı. Bir başka arkadaşım var ki onun projesi başarılı sayılabilir. Benim bildiğim 5 yı veya daha uzun bir süredir Kıbrıs'ta galiba Doğu Akdeniz Üniversitesi çevresinde oradaki bir profesör bizim arkadaş ve yine belli bir çekirdek ekibe ilaveten üniversite öğrencilerinden de değişken bir ekip ile hem coppact, hızlı bir veritabanı hem de buna paralel bir uygulama geliştirme aracı geliştiriyorlar. Vu bunları sattılar da... Hem veritabanı hem de diğer araçlar pocket PC üzerinde de aynen çalışabilyor. Demolarda oldukça hızl çaışıyor ve Almanya'da sattıkları uygulamalar da var... Fakat buna rağmen yazdıkları veritabanı daha yeni yeni SQL desteği kazandı. trigger ve stored procedure desteği yok. standart SQL dışında bu gun Oracle ve Sybvase gibi veritabanlarının sundukları kompleks imkanlara sahip olmak için gerçekten kırk fırın ekmeğe ihtiyaçları var. Gündee geldiğinde biz bile onların geliştirdikleri bu veritabanını kullanma konusunda karar veremedik. İnşallah ileri de bizi de tatmin eder ve kullanırız. Özetle diyeceğim şu ki: bulunan güzel fikirleri merkezinde kendimizin olacağı projelerde amerikayı yendiden keşifte bize avantaj sağlamakta kullanmak yerine kurulu sistemlerin kenarında bile kullanmak daha uygun olur. Şundan dolayı: Eğer bilsem ki 3 yıl sonra yerli üretim ve benim ihtiyaçlarıma karşılık verebilecek bir veritabanı ile bu foruma ilan atacaksınız. o zaman elimden gelen her desteği verirdim. Ama malesef öyle inanıyorum ki: bu pek mükün olamayacak kısıtlı imkanlar er ya da geç engel teşkil edecek ve hem bulunan güzel fikirler inançlar kaybolduğu için yarıyolda kalıp kaybolacak hem verilen emeklere yazık olacak. O yüzdenisterseniz sizi bahsettiğim arkadaşlar ile tanıştırayım fikir alışverişinde bulunun fikrinizi onlarla paylaşın eğer arkadaşlar fikri beğenir ve değerlendirmeye karar verirseler eminim ki yıllardır belirli bir noktaya gelen arkadaşların projesinde uygulama şansı bulunursa bu fikir o zaman hem sizi tatmin edecek bir boyutta işe yarayabilir hem de ticari değer bulur. Bu yazıdan sonra buna inanır mısınız bilmiyorum ama amacım hevesinizi kırmak değil doğru yere kanalize ederek hevesinizden toplum oalrak istifade edebilmek. Çünkü benzer heveslerle yola çıkıp yarıyolda kalan o kadar çok proje var ki: Bu kadar olumsuzluktan sonra olumlu bir örnek: Vakti zamanında Mirosoft grafik arabirimli işletim sistemi geliştirmeye başladığında ve Windowsu icat ettiği yıllara paralel Digital'den ayrılan idealist bir ekip grafik arabirimli Enterprise bir işletim sistemi geliştirmek amacıyla biraraya geldiler. Oldukça güzel çalışmalar yaparak ilgili çevrelerin dikkatini de çekmeyi başardılar ve tabi Amerika'da bile bu tür her ekibin başına geldiği gibi maddi sıkıntıya düştüler (Bakınız diğer örnek: Amiga'yi geliştiren ekibin düştüğü sıkıntıda Commodore'un Amiga'yi satın alması.) Bu durumu gören ticari deha Bill Gates bu ekibi ve ürününü bünyesine katarak Windows'a paralel olarak onların ürününü de Windows NT adı altında piyasaya çıkarttı. Gel zaman git zaman Windows 3.1, 95, 98 çıktı paraleleinde de NT devam edip benim hatırladığım 3.5 ve 4'ü çıktı. Sene 99 NT 5 hala üzerinde çalışılıyor. Bill Gates doğma büyüme Microsoftlu olan Windows'un aslında sakat doğduğunu ve 95, 98 değil 300'e kadar gitse de adam olmayacağını anladı. Buna karşılık NT4'ün Win987 karşısında mükemmel duruduğunu farketti. N5'in adını Windows 2000 yaptı (sanki Winn 982,in devami gibi) arayüzüünde özellikle denetim masasında gerekli düzenlemelei yaptı bu şekilde piyasaya çıkardı. Windows 98'i de son bi veda sürtümü olarak ME adı altında çıkartıp çöpe attı. :) Azimli ekibin başarısı.... Bu sırada unuttuğum ufak birşey eğer bir ekip değilseniz yani tek kişi olarak buları düşünüyoranız hemen başka hiç birşeye gerek olmadan bu işlerin ekip işi olduğunu hatta öyle 2-3 kişinin bile az sayılabileceği ekip işleri olduğunu hatırlatayım. Hay Allah, bu kadar yazıyı kim okur bilmiyorum ama oldu bi kere yazmış bulunduk.. Vaktini aldıklarım hakkını helal etsin... | |
| gkimirti | 09.10.2003 - 11:43:47 |
| helal olsun abi
uzun olmus biraz ama :) ben okudum | |
| mussimsek | 09.10.2003 - 11:57:13 |
| evet ben de okudum, olaya çok iyi yaklaşmışsın abi.
Bence de eğer arkadaş kabul ederse mevcut ekibe katılma olayı güzel bir fikir. kolay gelsin. | |
| undefined | 09.10.2003 - 20:34:46 |
| Fahrettin abiye ve diğer arkadaşlara bana zaman ayırdığı için ve tecrübelerini paylaştığı için çok teşekkür ediyorum. Ayrıca Recep abiye malesef yine yanıldığını söylemeliyim :) Harddiskin bölümlenmemiş/desteklenmeyen alanlarınada apilerle ulaşabilir. Hatta inanmassanız size bir proje yi örnek gösterebilirim. :) Adı explore2fs. Bu program sayesinde windowsdan linuxun partition sistemi olan extfs2/3 e ulaşabilirsiniz. Üstelik delphide yapılmış. İlgilenenler için adresi http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm (ayrıca bu programda ufak bir düzeltmede bulundum ama yapan kişiden cevap gelmedi)
Neyse asıl konuya dönelim. Yazınızda değindiğiniz gibi veritabanı motoru yapmak çok zor bir iş ve bende bunun böyle olduğunu kabul ediyorum. Bunun böyle olduğunu bu işi düşünmeye başlarken anlamıştım zaten. Yalnız aklımda şöyle çözümler geçti. Biliyorsunuzki veritabanları ana hatlarıyla iki katmandırlar. Mantıksal ve Fiziksel. Benim keşfettiğim fikir bu işin "fizksel" yönüne hitap ediyor. Yani veriyi depolama yönüne. Bu yönüyle amerikayı değil başka bir kıta ilk kez keşfedilmiş olucak. Çünkü bu kıta daha önce hiç keşfedilmemiş. Ama işin "mantıksal" yönünü ele alırsak size hak vermemek mümkün değil. Bir çok angarya iş bir çok insan emeği gerekli. Ama bu işi ilk düşündüğüm zaman bahsettiğiniz arkadaşınızın yaptığı proje gibi birşeyden haberim yoktu. Ben bu işi çözmek için mysql / postregsql / flashfiler / firebird gibi açık kaynaklı veritabanlarının incelenerek çözülebileceğini bir alternatif olarak görüyordum. Ama sizin önerdiğiniz projeyi yapan arkadaşlarınızın neler yaptıklarını görmek isterim. Demolarını incelemek, proje dökümanlarını okumak gibi. Mevcut bir projeye dahil olmak benide mutlu eder. Yaptıkları projenin web adresi varsa linkini sizden rica ediyorum. Projenin mantıksal katmanı fiziksel katmanı monte etmek için inşallah uygundur. Daha fazla yorum bekliyorum Allah yardımcımız olsun... (Burda herkese ismiyle hitap edildiğine göre, bende ismimi vereyim. İsmim Ahmet memnun oldum :) ) | |
| fahrettin | 09.10.2003 - 23:31:11 |
| Interbase gibi açık kodlu bir veritabanı üzerinde fikirlerinizi uygulamak da başlı başına güzel bir fikir aslında.
Ben bahsettiğim arkadaş ile görüşerek gerekli bilgileri alıp size aktarmaya çalışacağım... Kolay gelsin.... | |
| rsimsek | 10.10.2003 - 11:22:54 |
| O olayı ben de biliyorum, hatta linux tan diğer fat ve ntfs e ulaşılabildiği gibi tersine bir işlem de yapılabiliyor. Ama bunlara ulaşıp da bilgi okuma ve yazmak dediğim gibi ayrı bir işletim sistemidir. Yada bahsettiğin program gibi bir ara katman yazman gerekecek. İnşallah başarılı olursun. | |
| undefined | 10.10.2003 - 16:48:55 |
| Sağolasın Recep abi. Fahrettin beyden de Allah razı olsun. Benim için uğraşıyor. Birkaç takıldığım nokta var. Transaction olayı kafamı kurcalıyor. Transaction hakkında teorik bilgim var sadece. Transaction kullanan bir uygulamayı hiç incelemedim. Bir kaç sorum olucak
Transaction fiziksel katmandan ne ister ? Ne kadar yer ister ? Ne kadarı uygulama programına ve ne kadarı Vt motoruna bağlıdır ? Mevcut transaction teknolojileri ve teknikleri ? Bu sorulara cevap verebilecek döküman/kitap arıyorum. Çünkü buna uygun bir fiziksel katman tasarımı yapılmazsa mantıksal katmanda problem çıkabilir. Benim düşüncem transactiona linuxun takas alanı gibi bir parititon daha açmak. Siz ne düşünüyorsunuz ? | |
| mussimsek | 10.10.2003 - 16:59:56 |
| Veritabanı üzerine Oracle'ın kitapları üstüne tanımam. Bir ara Oracle lisansı aldığınız zaman 30-40 tane beyaz kitap veriyorlardı. Herşeyi detaylıca anlatıyordu. Şimdi sadece isteyene parayla veriyorlar galiba.
Yakınınızda böyle birisi varsa bu kitaplardan okuyabilirsiniz, değilse google.com'da arama yaptırın. Kolay gelsin. | |
| rsimsek | 10.10.2003 - 17:16:48 |
| transaction kabaca; yapılan işlemlerin (insert / update / delete gibi) fiziksel veritabanı üzerinde değil de cache de yapılmasıdır. işlemlerin herhangi birinde bir tutarsızlık veya kırılma olursa veritabanı bundan herhangi bir şekilde etkilenmez. çünkü transaction un bitirilmesi yani yapılan işlemin kalıcı olarak diske yazılması (commit) tamamen kullanıcının insiyatifindedir. kullanıcı da istediği yerden işlemi kesip transaction un başına dönebilir (rollback). | |
| undefined | 10.10.2003 - 18:24:57 |
| Teşekkür ederim.
Düşündüğüm gibi fiziksel olarak sadece cache alanı istiyor. Benim için zaten bu önemliydi. Ama tabi kafama transactionun mantıksal düzeyiyle ilgili sorular takıldı. :) Transactionın karışıklılığa yol açmazmı ? Mesela commit olmamış bir stok çıkışı depodaki malların fazla gösterilmesine sebep olmazmı ? Yoksa mantıksal düzeyde mal çıkışı olduğu varsayılırmı ? Varsayılsa bile rollback yapıldımı yine karışıklık çıkmazmı ? Ayrıca bu işin ne kadarı client'a ne kadarı server'a düşer ? Hangi sıklıkta commit yapılması lazım ? Sıklık süresini belirleyen kriterler nedir ? Bu sorunlarla karşılaştıysanız nasıl çözüm yolları geliştirdiniz ? vs. vs... Hepsine cevap vermeye uğraşmayın sakın. Size karşı mahçup duruma düşüyorum Piyasada, transanction konusunu detaylandırmış SQL isimli bayağ hacimli bir kitap gördüm. Almayı düşünüyorum. Kolay gelsin... | |
| Kuri_YJ | 10.10.2003 - 22:13:28 |
| 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... :) 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. | |
| freeman35 | 11.10.2003 - 13:49:57 |
| 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 | |
| undefined | 11.10.2003 - 15:21:46 |
| 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.... | |