Skip to content

LayerKeySort v4.1.0

Latest

Choose a tag to compare

@RXY712200 RXY712200 released this 25 Oct 09:27
70d7f0e

LayerKeySort Full v4.1.0

A compatible Full 4.x minor release adopting the independently reviewed,
three-step Live Order and Snapshot/History storage optimizations. Full remains
an ordering library; application items and business identity remain caller-owned.

Changes

  • Compact stable Residents: share the container-owner pointer at Block level.
    On measured x64 builds, Resident metadata changes from 32 to 24 bytes;
    Blocks change from 584 to 592 bytes. Resident addresses, individual reclamation,
    B64/AVL behavior and allocation frequency are retained.
  • Compact immutable snapshots: replace each offset/size pair with one cumulative
    association end (16 to 8 bytes per row on measured x64), coallocate the
    header/rows/copied Namespace, and retain exact useful association capacity.
    Final trimming remains fallible and precedes publication/provenance commit.
  • Compatible contracts: the frozen 64-function/14-type public API, stable
    occurrence handles, callbacks, borrowed-item ownership and failure atomicity
    remain unchanged. LS1, LKS4SNP1 and strict V3 LK1 migration retain
    their published meanings and exact bytes. Restore remains resolve-first and
    constructs fresh live handles.
  • Correct the distribution validator's implicit Windows single-config Debug
    configuration. Refresh the English/Simplified Chinese entry points, technical
    documentation, usage/integration guides and current release links.

Measured requested-memory examples

Workload Original Full 4.0.0 Combined implementation
1m residents, 16 retained snapshots, whole requested peak 513.594 MB 355.751 MB
Admitted 10m residents / 2 snapshots, Linux, whole requested peak 1,822.185 MB 1,317.500 MB

These are library-requested allocator-accounting values, not process RSS or
continuous OS memory peaks. The measurements describe particular x64 workloads
and hosts. They are not a universal memory ceiling or speed guarantee.

Regressions and accepted costs

This release is not universally faster. The fresh Linux 3m random-lookup
trace was approximately 10.2% slower than original 4.0.0. A specialized
large-Namespace key-format trace was approximately 25.1% slower than Step 1.
Selected serialization, movement/churn and destruction phases also regressed.
Final association shrinking can increase requested allocation traffic for wide
payloads; request bytes are not a measurement of allocator-internal copying.

Per-Resident allocation frequency, B64 slack, independent full snapshot copies
and the 8N-byte resolve-first pointer scratch on measured x64 remain accepted
costs. Full capture is O(N + association bytes). No new allocator/comparator-
inclusive wall-clock bound, universal acceleration or arbitrary-duration reliability
claim is made. Applications dominated by the adverse workloads should assess
those costs against their own requirements.

Validation and evidence

Fresh integrated Windows/Linux research completed 1,548 native processes,
with 36 safely skipped attempts, 11,802 matching ordering checkpoints,
independent association/wire/restore oracles, long churn and severe shrink/regrowth.
Admission/runtime safeguards were retained; unsafe 10m sanitizer or high-retention
campaigns are not claimed.

Validation includes strict C17 builds, OOM/failure-atomicity sweeps (including
final Snapshot trimming), protected marker lifetime tests, frozen API/wire vectors,
seven public examples, source/FetchContent/installed C/C++ consumers and reproducible
amalgamation. The final release source passed Full, Mini and Workbench gates;
Full CI passed CTest 39/39 in every configuration: Windows MSVC x64/Win32,
Ubuntu GCC, Ubuntu Clang, Ubuntu Clang ASan/UBSan and macOS AppleClang, including
the extended sanitizer campaign where configured.

Downloads and independent product lines

The attached LayerKeySort-4.1.0-amalgamation.zip contains the C17 public header,
implementation, example, LICENSE and README. Verify it with the attached
LayerKeySort-4.1.0-SHA256SUMS.txt. Both files were produced by the existing
release workflow and independently checked against the exact final source.

Mini remains independently published as mini-v1.0.0, unchanged. It is not
included in the Full amalgamation. Historical Full/Mini releases and tags remain
immutable. GitHub's automatic source archive contains the whole repository.