Skip to content

New map - #286

Open
akiradeveloper wants to merge 3 commits into
masterfrom
new-map
Open

akiradeveloper wants to merge 3 commits into
masterfrom
new-map

Conversation

@akiradeveloper

Copy link
Copy Markdown
Collaborator

No description provided.

@akiradeveloper akiradeveloper self-assigned this Oct 22, 2026
Represent each physical cache slot with a 16-byte sector/next/prev entry
and 32-bit bucket heads. Keep deletion of a known slot constant-time and
preserve its LBA after removal. Arrays and synchronization belong to the
metadata layer; map operations allocate no memory.

Add the implementation alongside the existing hash table for the next
commit to integrate. No standalone library or unit-test infrastructure.

Validation: module build against Linux 6.8.0-147 headers.
Use stable cache indices in lookup, read/write, writeback, and recovery.
Store LBAs and links in 16-byte entries, masks in a byte array, and dirty
flags in 32-byte segment headers. Keep map helpers local to metadata.c.

Allocate ceil(N/4) bucket heads once at creation, retaining constant-time
known-slot deletion and existing synchronization and segment references.
The main arrays use 17N + 4*ceil(N/4) + 32S bytes. Preserve the on-disk
format and guard cache-index capacity and allocation arithmetic.

Use CURDIR in the module Makefile so make -C src addresses the module.

Validation: module build against Linux 6.8.0-147 headers.
Store segment headers in a typed array and use direct indexing and
pointer subtraction. Allocate and free the array with vmalloc/vfree,
retaining the allocation-size overflow check.

Validation: module build against Linux 6.8.0-147 headers.
@akiradeveloper akiradeveloper modified the milestones: v2.3, v2.2.19 Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant