-
Notifications
You must be signed in to change notification settings - Fork 0
TR Concept Berkeley DB
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
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 │
└─────────────────────────────────────────────────────────────┘
AmberDB'nin tasariminda harici bir veritabani istemcisi (MySQL, Postgres, Mongo) yerine DB_File motorunun tercih edilmesinin temel nedenleri sunlardir:
- 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.
- 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.
- AmberDB, Perl'in cok surecli (Fork / Worker) mimarisinde (Starman, Plack, Apache FCGI/mod_perl) mukemmel calisir.
- Tum isci surecler ayni
.dbve.inxdosyalarina isletim sistemi duzeyindeki atomikflockkilitleri ve paylasimli bellek ile eszamanli erisebilir.
-
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.
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:
- Sema ve Blok Mimarisi: Düz anahtar-deger alanina esnek ve tipli cok bloklu döküman yapisi kazandirildi.
-
Onceden Hesaplanmis Binary Indeksler:
.fld,.src,.facve.srtindeksleri ile SQL benzeriWHERE,LIKE,ORDER BYveGROUP BYoperasyonlari$O(1)$ seviyesinde hizlandirildi. - Strict 2PL ve Undo-Journal: Cok tablolu atomik ACID islemleri ve otomatik cokme kurtarma eklendi.
- Cok Dilli Arama Motoru: Yerel dil kurallarina duyarlı fonetik arama ve Unicode siralamasi entegre edildi.
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)
AmberDB — High-Performance Schema-Driven NoSQL Database Engine for Perl.
Copyright 2005-2026 Maruf Cetin. Released under the Artistic License 2.0.
CPAN · GitHub Repository · Issue Tracker
- Berkeley DB (DB_File) Engine
- AmberDB Table Schema
- Global Flags
- Table Schema Flags
- Directory Structure
- File Structure (Extensions)
- Repeat Blocks
- Auto-Increment ID
- ASCII ID
- Relational Records
- Record Anatomy
- JOIN-Free Architecture
- Packed Binary Index
- Strict 2PL Locking
- Undo Journal & Rollback
- Tiered Junk Indexing
- Disjunctive Faceting
- Phonetic Accent Search
- 2-Pillar Disaster Recovery
- RAM-Disk Acceleration
- In-Memory Schema Mutation
- Simple Mode
- new
- config
- set_datadir
- insert_id
- insert_list
- modify_id
- modify_list
- delete_id
- delete_list
- read_id
- read_all
- read_list
- exist_id
- exist_list
- exist_table
- table_count
- table_keys
- table_lastid
- table_attr
- table_create
- field_fetch
- field_filter
- search_table
- facet_menu
- field_fltkeys
- field_allfltkeys
- facet_rules
- slug_read
- slug_fetch
- transact_start
- transact_end
- transact_commit
- transact_rollback
- transact_recover
- flock_open
- flock_close
- cache_setup
- cache_read
- cache_write
- cache_delete
- cache_preload
- cache_ensure
- buffer_write
- buffer_read
- buffer_delete
- recs_scan
- recs_get
- recs_put
- recs_del
- locale_uc
- locale_lc
- locale_sort
- locale_to_ascii
- locale_num2text
- locale_format_currency
- locale_format_date
- array_sort
- array_punch
- array_filter
- array_sublist
- deep_copy
- log_owner
- use_counter
- use_junk
- keep_deleted
- auto_id
- buffer_write
- simple
- no_write
- no_backup
- jnktype
- keys_only
- id_type
- language
- .db · .table · .dbase
- .inx · .fld · .src
- .fac · .srt · .slg
- .unq · .del · .aut
- .cnt · .txn · .amberdb
- .csv · .cache · .tmp