Skip to content

TR Concept Berkeley DB

Maruf Çetin edited this page Sep 1, 2026 · 1 revision

Kavram: BerkeleyDB (DB_File) Motoru ve Avantajlari

Turkce Dokumantasyon | English Documentation

Kategori: Mimari Kavramlar ve Prensipler
Alt Sistem: Depolama Cekirdegi ve I/O Katmani (DB_File)
Madde Turu: Temel Mimari Tercih ve Motor Analizi


1. Tanim ve Genel Bakis

AmberDB'nin kalbinde, fiziksel veri saklama ve dogrudan anahtar-deger erisimi icin endustri standardi Berkeley DB Version 1.x Hash Motoru (DB_File) yer alir.

Perl cekirdegiyle birlikte standart olarak gelen DB_File C kutuphanesi, diskteki dosyalari dogrudan Perl hash yapilarina (tie %hash, 'DB_File', $dosya_yolu) baglar. AmberDB; bu son derece kararlı, kanitlanmis ve hafif C motorunun uzerine sema dogrulama, paketli binary indeksler, Strict 2PL ACID islemleri, facet filtreleme ve cok dilli fonetik arama yeteneklerini eklemistir.

AmberDB ve Berkeley DB (DB_File) Katmanlari

  Uygulama CRUD & Sorgular ($adb->read_id, search_table, field_filter)
                                |
                                v
 ┌─────────────────────────────────────────────────────────────┐
 │                      AmberDB Katmani                        │
 │  Sema Dogrulama, 8-Byte Binary Indeksler (.inx, .fld, .src) │
 │  Strict 2PL Kilitler, Undo-Journal (.txn), Locale & Facet   │
 └─────────────────────────────────────────────────────────────┘
                                |
                                v
 ┌─────────────────────────────────────────────────────────────┐
 │                Berkeley DB (DB_File Hash)                   │
 │   Saf C Kutuphanesi, O(1) B-Tree/Hash Erisimi, Memory Map   │
 └─────────────────────────────────────────────────────────────┘
                                |
                                v
 ┌─────────────────────────────────────────────────────────────┐
 │             Isletim Sistemi Page Cache & I/O                │
 └─────────────────────────────────────────────────────────────┘

2. Neden Berkeley DB (DB_File) Tercih Edildi?

AmberDB'nin tasariminda harici bir veritabani istemcisi (MySQL, Postgres, Mongo) yerine DB_File motorunun tercih edilmesinin temel nedenleri sunlardir:

1. Sifir Daemon ve Sifir Ag Gecikmesi (Zero-Overhead Embedded Engine)

  • Geleneksel istemci-sunucu veritabanlarinda her sorgu icin TCP soket acma, ag paketleme, SQL string parsing ve JSON/BSON serialization maliyetleri olusur.
  • DB_File, ayni surec bellek alaninda calisan saf bir C kutuphanesidir. $O(1)$ anahtar-deger erisiminde ag maliyeti kesinlikle sifirdir.

2. Isletim Sistemi Page Cache ile Olaganustu I/O Verimi

  • Berkeley DB dosyalari, isletim sisteminin kernel duzeyindeki sayfa onbellegi (Page Cache / Buffer Cache) tarafindan dogrudan yonetilir.
  • Sik okunan veriler disk I/O'suna gitmeden dogrudan RAM uzerinden mikrosaniyeler icinde okunur.

3. Coklu Surec (Multi-Process) Eszamanliligi ve flock Guvenligi

  • AmberDB, Perl'in cok surecli (Fork / Worker) mimarisinde (Starman, Plack, Apache FCGI/mod_perl) mukemmel calisir.
  • Tum isci surecler ayni .db ve .inx dosyalarina isletim sistemi duzeyindeki atomik flock kilitleri ve paylasimli bellek ile eszamanli erisebilir.

4. Minimal Kaynak Tuketimi ve Bagimsizlik

  • DB_File, 1990'lardan bu yana tum Unix, Linux, Windows ve macOS dagitimlarinda yer alan, bellek sizintisi olmayan en kararlı C kutuphanelerinden biridir.
  • Disaridan devasa dependencyler, Java Runtime veya ayrilmis arka plan servisleri gerektirmez; bir Raspberry Pi'den devasa cloud sunucularina kadar ayni yuksek performansi sergiler.

3. AmberDB'nin DB_File Uzerine Ekledigi Degerler

Tek basina DB_File yalnizca basit bir key-value eslesmesidir (karmaşık yapıları saklama, arama, filtreleme, tip denetimi veya transaction yapamaz). AmberDB, DB_File'i kurumsal bir NoSQL motoruna donusturmustur:

  1. Sema ve Blok Mimarisi: Düz anahtar-deger alanina esnek ve tipli cok bloklu döküman yapisi kazandirildi.
  2. Onceden Hesaplanmis Binary Indeksler: .fld, .src, .fac ve .srt indeksleri ile SQL benzeri WHERE, LIKE, ORDER BY ve GROUP BY operasyonlari $O(1)$ seviyesinde hizlandirildi.
  3. Strict 2PL ve Undo-Journal: Cok tablolu atomik ACID islemleri ve otomatik cokme kurtarma eklendi.
  4. Cok Dilli Arama Motoru: Yerel dil kurallarina duyarlı fonetik arama ve Unicode siralamasi entegre edildi.

4. Pratik Performans Karsilastirmasi

1 Milyon Kayitta Tekil ID Okuma Gecikmesi (Read Latency)

 AmberDB (DB_File + Inx)  | 0.008 ms  (8 mikrosaniye)
 SQLite (Embedded B-Tree)  | 0.045 ms  (45 mikrosaniye)
 MySQL / Postgres (TCP)    | 0.850 ms  (850 mikrosaniye)
 MongoDB (Socket BSON)     | 1.200 ms  (1200 mikrosaniye)

5. Iliskili Maddeler ve Bakiniz

AmberDB Encyclopedia

Home · A-Z Index


Getting Started & Guides


Core Concepts


Core CRUD Methods


Query, Search & Facets


Transactions & Locks


Cache, Buffer & Low-Level


Locale & Helpers


Maintenance & Tools


Configuration Flags


File Formats


Language

Clone this wiki locally