[Linux-programlama] Dosya sistemi mi, yoksa veritabanı mı?

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Volkan YAZICI (yazicivo@ttnet.net.tr)
Date: Sat 07 May 2005 - 02:41:40 EEST


Merhaba,

Ne zaman bir dosya, dosya sistemi yerine veritabanı [1] üzerinde
saklanmalı? Listedeki arkadaşların konu üzerine yorumları çok
makbule geçecektir.

[1] Veritabanı ile kastım RDBMS. Yani PostgreSQL, Firebird tarzı.

Benim tasarladığım bir kaç noktayı sizin ile paylaşacak olursam:

{{{
Bir dosyanın, sunucunun dosya sistemi yerine, veritabanında saklanıyor
olması daha "merkeziyetçi" bir yapı sunacaktır. Yani, dosyaya ulaşmak
isteyenlerin, sadece sunucuya baÄŸlanabilmeleri yeterli olacak olup, dosya
sistemi uyuşmazlığı (ya da NFS) gibi problemler ile karşılaşmayacaklardır.

Verinin bütünlüğü açısından, dosya sistemlerine göre veritabanları daha
kararlı bir form sunacaktır. Sahip olduğu PITR, ve benzeri veri kurtarma
yöntemleri ve transaction destekleri ile sunucu üzerindeki verinin
güvenliği ve sunucu/istemci arasındaki verinin bütünlüğü daha kararlı
bir hale bürünecektir. (Bu noktada biraz tereddütlerim var. Sonuç
itibari ile uğraşılırsa dosya sistemleri üzerinde de kurtarma ve
transaction desteği sağlanabilir. (Transaction için bkz. subversion'un
atomik dosya transfer iÅŸlemleri.) Fakat bu uÄŸraÅŸa deÄŸecek midir?)

Verinin şifrelenerek yollanmasını düşünecek olursak, bu bir
veritabanında ufak bir parametre kadar yakınken (Örneğin PostgreSQL'de
sslmode=require bağlantı parametresi tüm bu işlemler için yeterli.)
dosya sistemleri için birbirinden farklı alternatifler, yine kendi
içlerinde ayrıldıkları gruplara göre eksi ve artıları ile, bu özelliği
sağlarken, bir veritabanının sunduğu kolaylığı sunamayabilir.
}}}

Bunun yanında, veritabanlarının dosya kaydında sahip olduğu bazı eksiler
bulunmakta. Bunları da kendi çıkarabildiğim kadarı ile şöyle listeleyeyim:

{{{
RDBMS'lerde, veri iletişimi bir çok kontrol meknazimasına tabi
tutulduğundan, normal bir dosya sisteminde saklanan dosyaya göre,
veritabanından bir dosyanın sunumu sistem kaynakları için pek de iyi
niyetli olmayacaktır. Bunun yanında, bir yavaşlığın da yaşanacak olması
muhtemeldir. (Bu yavaşlık ne derece fark eder, bu noktada da soru
iÅŸaretleri var.)

Olaya uzun vadede yaklaşıldığında, kullanılan RDBMS'in duyurulan yeni
sürümünün verinin saklanmasında kullandığı yeni yöntemler eskisi ile
uyumlu olmayabilir; ki böyle bir durumda tüm veritabanının dump edilip,
yeni veritabanına load edilmesi gerecektir. Bir sistem yöneticisinin
veritabanını dosya saklamak için kullandığı düşünelecek olursa, bunun
epeyce meşakkatli bir iş olacağı ortada gibi.

Bazı RDBMS'lerde dosya boyut sınırları, dosya sistemi için geçerli olan
sınırların çok altındadır. Örnek vermek gerekirse, PostgreSQL'de Large
Object kullanılarak saklanabilecek en büyük dosya boyutu 2 Gb
dolaylarındadır. (Gerçi TOAST mekanizmasının devreye geçmesi ile
birlikte PostgreSQL'de normal bir tablo alanında da artık 2 Gb'ye kadar
veri saklanabiliyor. Yani Large Object bir zorunluluk olmaktan çıktı.)
Diğer taraftan, dosya sistemleri göz önüne alınacak olursa, kullanılan
çekirdeğe göre bu sınır değişecek olup, genelde de bir dosya sistemi bir
veritabanına göre daha büyük boyutlarda dosya tutubilir nitelikte
olacaktır.
}}}

Buraya kadar sabırla okuduğunuz için (kandırmıyorsunuz değil mi?) ayrıca
teşekkür ederim. Yorumlarınızı merakla bekliyorum. İyi çalışmalar.

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.