Changes for version 5.22.0 - 2026-08-31

  • [REFACTOR] Codebase Cleanliness:
    • Removed redundant single-line helper is_rdbm_block() in favor of direct rdbm_target() calls across AmberDB::Index, AmberDB::Index::Junk, and AmberDB::Tools.
  • [RDBM & INTEGRITY] Hardened Foreign Table Auto-Registration in field_to_list():
    • Replaced decoupled table_autoid() and recs_put() sequence with atomic insert_id($target_table, 0, @record) to prevent ID race conditions.
    • Corrected foreign record column alignment so auto-registered values are accurately placed at block index $target_blk rather than hardcoded column 1.
    • Guaranteed that foreign table primary indexes (.inx) and secondary indexes (.unq, .src, .fac, .slg) are fully and consistently constructed upon auto-registration.
  • [SECURITY & VALIDATION] Universal ID Verification and Simple Mode Key Sanitization:
    • Eliminated opt-in config('id_check') requirement: every schema table now strictly enforces its schema id_type (positive integers for num, safe 8-byte chars for ascii).
    • Enforced scalar ID requirement: any reference (ARRAY ref, HASH ref, etc.) passed as a record ID is strictly rejected across all modes.
    • Introduced Safe Key Sanitization in Simple Mode: automatically trims leading/trailing whitespace, strictly rejects NUL bytes (\0) and control characters (\r, \n, \t, \x00-\x1F, \x7F) that corrupt Berkeley DB or CSV backups, and enforces a maximum key length of 255 bytes.
    • Integrated unconditional id_check across table_autoid(), read_id(), modify_id(), delete_id(), and exist_id().
  • [REFACTOR] Terminology and Codebase Refactoring: SEO -> Slug:
    • Completely replaced SEO terminology with Slug across the entire codebase, test suite, and documentation without legacy aliases:
      • Renamed methods: set_seourl() -> set_slug(), get_seourl() -> get_slug().
      • Renamed schema attributes: seo_block -> slug_block, seo_max_len -> slug_max_len.
    • Renamed test suite t/amberdb_seo_facet_bulk.t to t/amberdb_slug_facet_bulk.t.
  • [STORAGE] Standardized URL Slug Map File Extension: .rwt -> .slg:
    • Renamed binary slug map files from _0.rwt / _1.rwt to _0.slg (ID -> Slug) and _1.slg (Slug -> ID) across AmberDB, Index, Transact, and Tools.
    • Updated Tools->set_index() to reconstruct .slg files with zero data loss.
  • [DOCS] Caching Terminology Unification:
    • Completely removed deprecated L1/L2 caching terminology from all documentation and POD.
    • Standardized on unified "Shared RAM-Disk (tmpfs / ImDisk) Cache" architecture.
  • [TESTS & CONCURRENCY] Cross-Platform Multi-Process Concurrency Stress Testing:
    • Upgraded xt/amberdb_concurrency_stress.t to an OS-aware unified architecture supporting both Linux (POSIX fork+exec) and Windows (independent asynchronous perl.exe processes).
    • Ensures full operating system-level flock(LOCK_EX) lock isolation on Windows without CRT/pseudo-fork thread contention.
    • Comprehensive validation across 5 concurrency scenarios: 1. Multi-worker parallel writes with secondary index synchronization (.inx, .fld, .src, .fac, .srt, .slg). 2. Interleaved concurrent reads and writes without deadlocks or corruption. 3. Concurrent independent transactions with simulated mid-operation process crashes and orphan recovery (transact_recover). 4. High-concurrency duplicate title insertion verifying deterministic URL slug collision resolution and 100% bidirectional bijection. 5. Shared record inventory decrements using record-level locks (flock_open / flock_close).
  • Added Section 7.8 ("Multi-Process Concurrency, Lock Isolation, and Stress Verification") to Turkish and English documentation.
  • Updated README.md with concurrency stress testing instructions.

Modules

High-performance, schema-driven NoSQL engine with ACID transactions and precomputed inverted indexing for Perl
Array, matrix manipulation, and set operations utility
Core serialization, schema resolution, binary packing, file locking, and low-level I/O base class
Native .db and .inx RAM-Disk (tmpfs) unified cache and persistent staging buffer engine
Date manipulation, chronological ID generation, range calculation, and formatting utility
Inverted search, exact field match, binary sort, and URL slug rewrite indexing engine
Column-oriented facet indexing, disjunctive counting, and navigation menu generator
Schema-driven Tiered (Hot/Cold) Indexing and Lifecycle Management for AmberDB
Multilingual text processing, collation, number/currency formatting, and search normalization engine
ISO 4217 Currency Definition and Symbol Dictionary
Arabic Language Definition and Locale Data for AmberDB
Azerbaijani Language Definition and Locale Data for AmberDB
German Language Definition and Locale Data for AmberDB
English Language Definition and Default Locale Data for AmberDB
Spanish Language Definition and Locale Data for AmberDB
French Language Definition and Locale Data for AmberDB
Japanese Language Definition and Locale Data for AmberDB
Russian Language Definition and Locale Data for AmberDB
Turkish Language Definition and Locale Data for AmberDB
String manipulation, HTML conversion, content detection, and sanitization utility
Database maintenance, CLI reindexing, and bulk conversion toolset
ACID-compliant transactions with Strict Two-Phase Locking (Strict 2PL) and undo journaling engine