Help us shape the future of Go! Take the 2026 Go Developer Survey

mlfs

module
v0.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2026 License: AGPL-3.0

README

mlfs — POSIX filesystem

A FUSE filesystem with PostgreSQL metadata, content-addressed file slices, durable write-back cache, copy-on-write, ownership leases, invalidation, POSIX ACLs, and local or remote storage paths.

Go module: github.com/scitrera/memorylayer-storage/mlfs. Initial version: 0.7.1, licensed under AGPL-3.0-only.

The mlfs daemon mounts the filesystem. mlfs-admin provides administrative operations and mlfs-bench provides workload/metrics tooling. Run each command with -help. Linux and FUSE are required for mount tests.

From the repository root:

cd mlfs
go test ./...
go build ./...

The root go.work resolves sibling modules for development. Published module versions use mlfs/vX.Y.Z tags. See development and releases and operations.

Directories

Path Synopsis
Package bridge is the EXPORTED mlfs↔VFS metadata-only bridge (handoff Item C): it moves files between mlfs and blobgw by SYNTHESISING metadata over the shared casstore chunks — no file bytes are ever read or written in either direction.
Package bridge is the EXPORTED mlfs↔VFS metadata-only bridge (handoff Item C): it moves files between mlfs and blobgw by SYNTHESISING metadata over the shared casstore chunks — no file bytes are ever read or written in either direction.
cmd
mlfs command
Command mlfs is the L2 POSIX filesystem daemon: it wires the PostgreSQL metadata engine, a casstore-backed chunk store with a durable write-back disk cache, the data path, and the FUSE bridge into a real mount.
Command mlfs is the L2 POSIX filesystem daemon: it wires the PostgreSQL metadata engine, a casstore-backed chunk store with a durable write-back disk cache, the data path, and the FUSE bridge into a real mount.
mlfs-admin command
Command mlfs-admin is the L2 operations CLI.
Command mlfs-admin is the L2 operations CLI.
mlfs-bench command
Command mlfs-bench is a standalone probe for an mlfs mount, meant to be deployed onto any pod that mounts mlfs storage.
Command mlfs-bench is a standalone probe for an mlfs mount, meant to be deployed onto any pod that mounts mlfs storage.
internal
acl
Package acl implements just enough POSIX.1e ACL handling for default-ACL INHERITANCE on file creation.
Package acl implements just enough POSIX.1e ACL handling for default-ACL INHERITANCE on file creation.
bench
Package bench is a POSIX filesystem benchmark for an mlfs mount.
Package bench is a POSIX filesystem benchmark for an mlfs mount.
cache
Package cache is mlfs's local disk cache and durable write-back staging in front of the casstore-backed chunk store.
Package cache is mlfs's local disk cache and durable write-back staging in front of the casstore-backed chunk store.
chunkstore
Package chunkstore stores file slices through casstore.
Package chunkstore stores file slices through casstore.
coord
Package coord is mlfs's multi-node coordination plane (L2.8).
Package coord is mlfs's multi-node coordination plane (L2.8).
e2e
Package e2e holds the hermetic cross-module integration test that proves the converged storage stack works end to end: the REAL blobgw control-plane server (controlplane.Server over embedded NATS, with a tenantbind credential provider and an in-memory dedup index) wired to the REAL mlfs node data path (chunkstore.NewRemote → remoteindex.NatsRequester / s3http / casstore), with an httptest server standing in for S3.
Package e2e holds the hermetic cross-module integration test that proves the converged storage stack works end to end: the REAL blobgw control-plane server (controlplane.Server over embedded NATS, with a tenantbind credential provider and an in-memory dedup index) wired to the REAL mlfs node data path (chunkstore.NewRemote → remoteindex.NatsRequester / s3http / casstore), with an httptest server standing in for S3.
fileio
Package fileio is mlfs's file data path: it turns POSIX read/write at byte offsets into slice writes (chunk store) + slice records (meta engine), and resolves overlapping slices on read so newer writes win.
Package fileio is mlfs's file data path: it turns POSIX read/write at byte offsets into slice writes (chunk store) + slice records (meta engine), and resolves overlapping slices on read so newer writes win.
fsstat
Package fsstat holds small, dependency-free helpers for reporting filesystem usage: human-readable byte sizes, on-disk directory accounting, and statfs capacity.
Package fsstat holds small, dependency-free helpers for reporting filesystem usage: human-readable byte sizes, on-disk directory accounting, and statfs capacity.
fuse
Package fusebridge maps FUSE operations onto the metadata engine and file I/O layer.
Package fusebridge maps FUSE operations onto the metadata engine and file I/O layer.
gc
Package gc is mlfs's refcount-free, mark-and-sweep garbage collector.
Package gc is mlfs's refcount-free, mark-and-sweep garbage collector.
meta
Package meta implements the PostgreSQL filesystem metadata engine.
Package meta implements the PostgreSQL filesystem metadata engine.
metrics
Package metrics is the mlfs daemon's in-process instrument registry.
Package metrics is the mlfs daemon's in-process instrument registry.
mountlock
Package mountlock provides a single-node "is a daemon live?" guard built on a PID lock file in the data directory.
Package mountlock provides a single-node "is a daemon live?" guard built on a PID lock file in the data directory.
remoteblob
Package remoteblob implements the casstore blobstore.Storage interface for an mlfs node's direct-S3 data plane (ADR-001 §2.2, §5).
Package remoteblob implements the casstore blobstore.Storage interface for an mlfs node's direct-S3 data plane (ADR-001 §2.2, §5).
remoteindex
Package remoteindex implements snapshot.DedupStore over the blobgw control plane using NATS request-reply and the ctlproto wire contract (ADR-001 §2.2, §2.5).
Package remoteindex implements snapshot.DedupStore over the blobgw control plane using NATS request-reply and the ctlproto wire contract (ADR-001 §2.2, §2.5).
remotepresign
Package remotepresign implements a node-side client that requests presigned S3 URLs from blobgw's control plane over NATS request-reply using the ctlproto wire contract (ADR-001 §2.2, §2.5, §2.9).
Package remotepresign implements a node-side client that requests presigned S3 URLs from blobgw's control plane over NATS request-reply using the ctlproto wire contract (ADR-001 §2.2, §2.5, §2.9).
s3http
Package s3http is the node-side HTTP transfer primitive for the direct-S3 data plane described in ADR-001 §2.2 and §5.
Package s3http is the node-side HTTP transfer primitive for the direct-S3 data plane described in ADR-001 §2.2 and §5.
testpg
Package testpg provides Postgres-backed test isolation for mlfs.
Package testpg provides Postgres-backed test isolation for mlfs.
wal
Package wal is mlfs's local data write-ahead log.
Package wal is mlfs's local data write-ahead log.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL