-
Notifications
You must be signed in to change notification settings - Fork 0
TR Guide AmberDB Nedir
Turkce Dokumantasyon | English Documentation
Kategori: Baslangic ve Temel Rehberler
Alt Sistem: Cekirdek Mimari (AmberDB)
Madde Turu: Genel Tanitim ve Mimari Rehber
AmberDB, Perl programlama dili icin sifirdan tasarlanmis; Berkeley DB (DB_File) uzerinde calisan, sema gudumlu (schema-driven), onceden hesaplanmis ters indekslemeye (precomputed inverted indexing), Strict 2PL kilit destekli ACID islem motoruna, otomatik cokme kurtarmasina ve yerel dil duyarlı akilli metin aramasina sahip yuksek basarimli bir NoSQL döküman veritabanidir.
2005 yilinda ilk temelleri atilan ve 2026 yilinda modern mimarisiyle CPAN uzerinden yayinlanan AmberDB, ozellikle e-ticaret, urun kataloglari, CMS, yuksek trafikli web uygulamalari ve yuksek eszamanli veri ambarlari icin optimize edilmistir.
AmberDB'nin temel amaci; harici bir veritabani sunucusu (MySQL, PostgreSQL vb.) kurulumu, ag soket maliyetleri, karmasik SQL JOIN darboğazlari veya harici arama motoru (Elasticsearch vb.) bagimliliklari olmadan, saf Perl ve gomulu C duzeyindeki Berkeley DB gucuyle tek bir instance uzerinden tum veri, arama, filtreleme, facet ve islem guvenligi ihtiyaclarini karsilamaktir.
AmberDB Butunlesik NoSQL Mimarisi
Uygulama Katmani (Web / API / Worker / CLI)
|
v
┌──────────────────────────────────────────────────────────────┐
│ AmberDB │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ AmberDB::Base │ │ AmberDB::Index │ │AmberDB::Transact│ │
│ │ Sema & CRUD │ │ Binary Indeksler│ │ ACID & 2PL │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌────────────────┐ │
│ │ AmberDB::Cache │ │ AmberDB::Locale │ │AmberDB::Tools │ │
│ │ RAM-Disk (tmpfs)│ │ 9 Dil, Aksan/UCA│ │ Reindex/Vacuum │ │
│ └─────────────────┘ └─────────────────┘ └────────────────┘ │
└──────────────────────────────────────────────────────────────┘
|
v
Isletim Sistemi Katmani (DB_File Hash + POSIX flock + Page Cache)
|
v
Fiziksel Depolama (dbstore/tables/*.db, .inx, .fld, .src, .fac, .srt)
AmberDB hicbir harici agir CPAN bagimliligina ihtiyac duymaksizin kendi icinde moduler ve hafif bir tasarim sunar:
| Modul | Gorev ve Sorumluluk Alani |
|---|---|
AmberDB::Base |
Sema yukleme (.table, .dbase), dosya yollari, veri serilestirme, 0. indis ID kurallari ve cekirdek CRUD yonetimi. |
AmberDB::Index |
8-byte paketli binary indeksler (.inx), ters eslesme (.fld), tam metin arama (.src), facet filtreleme (.fac) ve on-siralanmis (.srt) indekslerin uretimi ve esitlenmesi. |
AmberDB::Transact |
ACID islem yonetimi, disk tabanli undo-journal gunlukleri (.txn), Strict 2PL cok surecli kilitler ve otomatik cokme kurtarmasi (transact_recover). |
AmberDB::Cache |
Isletim sistemi duzeyinde RAM-Disk (tmpfs / ImDisk) paylasimli bellek onbellegi (.cache), TTL kontrolleri ve bellek ici ayna yonetimi. |
AmberDB::Locale |
9 dilde (tr, en, de, fr, es, ja, ru, ar, az) dil duyarlı buyuk/kucuk harf donusumu, fonetik yumusama, aksan acilimi ve Unicode Collation (UCA) siralamasi. |
AmberDB::Array |
Yuksek hizli dizi manipule yardimcilari (sirali karsilastirma, tekrarsiz fark alma, dilimleme, crop). |
AmberDB::String |
Metin guvenligi, HTML temizleme, ASCII normalizasyonu ve URL slug uretimi. |
AmberDB::Date |
Tarih/saat hesaplamalari, epoch donusumleri ve yerel tarih bicimlendirme. |
AmberDB::Tools |
Veritabani bakimi, .amberdb yedekleme ve geri yukleme, reindex, vacuum ve tablo butunluk denetimleri. |
Iliskisel veritabanlarinda coklu tablolari birbirine baglayan pahali JOIN sorgulari yerine, hiyerarsik ve genisleyebilir döküman bloklari kullanilir. Bir kaydin icinde alt satirlar (siparis kalemleri, ozellikler) yatay bloklar halinde saklanir ve motor tarafindan otomatik indekslenir.
Birincil (.inx) ve ikincil indeksler 8-byte paketli binary tamponlar (Q* / a8*) olarak saklanir. Bu sayede bellek tuketimi minimuma iner ve milyonlarca kayit iceren listelerde sayfalama (LIMIT / OFFSET) substr dilimlemesiyle mikrosaniyeler icinde gerceklesir.
Cok tablolu operasyonlar, disk tabanli geri alma gunlukleri (.txn) ve katı iki asamali kilitleme (Strict 2PL) protokolü ile guvenceye alinir. Surec aniden cokse veya elektrik kesilse dahi yetim gunlukler bir sonraki erisimde LIFO sirasiyla otomatik geri alinir.
-
1. Sutun (Surekli WAL Akisi): Her
insert,modifyvedeleteislemi gunlukbackup/YYYY/YYYY-MM-DD.csvakisina aninda eklenir. - 2. Sutun (Tasinabilir .amberdb Arsivleri): SHA-256 imzali sikistirilmis veritabani arsivi. Indeksler disarida birakilarak alandan tasarruf edilir; geri yuklemede deterministik olarak yeniden insa edilir.
Turkce ve diger desteklenen dillerde fonetik yumusama (b/d/g -> p/t/k), sapkali harf acilimi (â/î/û -> a/i/u), apostrof ayirma ve dil duyarlı kucuk/buyuk harf esleme (orn: I ı, İ i) ile arama motoru seviyesinde metin sorgulama sunar.
Sik erisilen katalog tablolari, isletim sisteminin tmpfs veya ImDisk paylasimli bellek alanina baglanarak mikro-saniye seviyesinde
| Kriter | AmberDB | SQLite | Geleneksel SQL (MySQL / Pg) | Harici NoSQL (MongoDB vb.) |
|---|---|---|---|---|
| Kurulum / Daemon | Gomulu (Zero Daemon) | Gomulu | Harici Servis / TCP Soket | Harici Servis / TCP Soket |
| Perl Entegrasyonu | Saf Perl Native (0-Serilestirme) | DBI / DBD Katmani | DBI / DBD Katmani | JSON / BSON Driver |
| JOIN Maliyeti | Sifir (JOIN-Free Bloklar) | Yuksek (B-Tree Scan) | Yuksek (Disk/Bellek JOIN) | Uygulama Isci Katmani |
| Tam Metin Arama | Dahili (Dil/Aksan Duyarli) | Eklenti (FTS5) | Harici Motor / Fulltext | Dahili / Harici |
| Cok Surecli Paylasim | Yuksek (OS flock + Page Cache) | Sinirli (Kaba Dosya Kilidi) | Cok Yuksek (MVCC) | Cok Yuksek |
| Sayfalama Hizi |
|
|
|
|
| Bellek Ayak Izi | Cok Dusuk (~2-5 MB) | Dusuk (~5-10 MB) | Yuksek (>100-500 MB) | Cok Yuksek (>500 MB - 1 GB) |
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