Veritabanı Temelleri
(tontinton.com)bashdb Temelleri
- En basit veritabanı programı olan
bashdb, iki bash fonksiyonundan oluşur. db_setfonksiyonu verileri dosyaya ekler,db_getfonksiyonu ise verileri sorgular.bashdb'nin sorunları arasında dayanıklılık, atomiklik, yalıtım ve performans yer alır.
bashdb'yi ACID hale getirmek
- ACID, veritabanı işlemlerinin atomiklik, tutarlılık, yalıtım ve dayanıklılık özelliklerini ifade eder.
bashdb'nin dayanıklılığını iyileştirmek içindb_setiçinesynckomutu eklenir.- Yalıtım için
flockprogramı kullanılarak dosya kilitleme eklenir.
Dayanıklılık
fsyncvefdatasync, yazma tamponunu diske boşaltan sistem çağrılarıdır.synckomutu tüm "kirli" sayfaları diske boşaltır;-dbayrağı isefdatasyncçağırır.
Yalıtım
flock,bashdb'ye çok süreçli yalıtım sağlamak için kullanılır.flock, dosya kilitleme için kullanılan bir Linux programıdır;-sbayrağıyla eşzamanlı okumaya izin verir.
Kötü haber
bashdbile atomikliği garanti etmenin basit bir yolu bulunamaz.- Performansı artırmak için
O(n)algoritmasının iyileştirilmesi gerekir.
Depolama motoru
- Depolama motorunun amacı, kalıcı depolamaya veri okuyup yazmak için bir soyutlama sağlamaktır.
- Depolama motoru tasarımı, disk G/Ç'sini ve disk seek işlemlerini en aza indirmeyi hedefler.
Değiştirilebilir B-ağacı
- B-ağacı, disk G/Ç'sini ve seek işlemlerini en aza indiren, BST'nin uzamsal yerelliğe sahip bir türevidir.
- B-ağacı, düğümlerin daha fazla çocuğa sahip olmasına izin veren genelleştirilmiş bir BST'dir.
Değiştirilemez LSM ağacı
- LSM ağacı, yazma ağırlıklı iş yükleri için avantajlı olan, sıralı şekilde yazılan değiştirilemez bir veri yapısıdır.
- LSM ağacı verileri bellekte tamponlar ve belirli bir kapasiteye ulaştığında sıralanmış SSTable olarak diske boşaltır.
Bloom filtresi
- Bloom filtresi, bir öğenin kümede bulunmadığını verimli şekilde kontrol etmeyi sağlayan olasılıksal bir veri yapısıdır.
- Bloom filtresi hash fonksiyonlarıyla çalışır ve alan karmaşıklığı
O(log n)'dir.
Write Ahead Log
- WAL, tüm işlem operasyonlarını kaydeden özel bir dosyadır; veritabanı süreci başladığında durumu yeniden oluşturur.
Yalıtım
- Yalıtımı sağlamak için kötümser kilitleme, iyimser kilitleme veya MVCC kullanılabilir.
- ANSI/ISO standardı SQL 92, çeşitli okuma yalıtım seviyeleri tanımlar.
Dağıtık sistemler
- Dağıtık sistemler karmaşıklık ekler; erişilebilirlik ve yatay ölçekleme için veriler birden fazla makineye dağıtılabilir.
- CAP teoremine göre bir sistem, tutarlılık, erişilebilirlik ve bölünme toleransından yalnızca ikisini garanti edebilir.
Tutarlı hashleme
- Tutarlı hashleme, düğüm ekleme veya çıkarma sırasında taşınması gereken öğe miktarını azaltan bir veri bölümleme yöntemidir.
GN⁺ görüşü:
- Veritabanlarının temel sorunlarını ve ACID özelliklerini anlamak, veritabanı mühendisliğinin özüdür.
bashdbörneği, gerçek veritabanı sistemlerinde ortaya çıkan sorunları anlamaya yardımcı olur.- Depolama motorları ve dağıtık sistem tasarımı, veritabanının performansını ve güvenilirliğini belirleyen önemli unsurlardır.
1 yorum
Hacker News görüşü
Birinci yorum özeti:
İkinci yorum özeti:
Üçüncü yorum özeti:
Dördüncü yorum özeti:
Beşinci yorum özeti:
Altıncı yorum özeti:
Yedinci yorum özeti:
sync; mv; synckullanarak sağlanabilir.Sekizinci yorum özeti:
Dokuzuncu yorum özeti:
Onuncu yorum özeti: