Skip to content

Limits

Limits are deployment-specific. LoonFS deployments should tune their limits based on their unique constraints. The reference server is built around a safe set of limits that serve as a reasonable lower bound, but can be increased and tuned as needed.

Complying servers should publish the values they enforce as a response to GET /v0/capabilities. Clients should use that response instead of assuming any universal defaults.

Capability limitDefaultMeaning
upload.max_content_bytes256 MiBLargest service-proxied upload body.
download.max_content_bytes256 MiBLargest file returned through a service-proxied content read.
upload.max_concurrent8Proxied uploads the server accepts concurrently.
download.max_concurrent16Proxied content reads the server accepts concurrently.

These byte limits are specific to service-proxied uploads and downloads (when content passes through the LoonFS server). They are not maximum file sizes. A deployment may support larger files using direct uploads, multipart uploads, and direct download grants.

Capability limitDefaultMeaning
commit.max_operations4,096Filesystem operations in one commit.
commit.max_content_tokens4,096Content-preparation tokens carried by one commit.
commit.max_external_content_refs4,096Distinct external content references named by one commit.
commit.max_message_bytes4,096 bytesUTF-8 byte length of the optional commit message.
Capability limitDefaultMeaning
pagination.default_limit1,000Items returned when a standard paged request omits limit.
pagination.max_limit1,000Largest accepted standard page size.
query.grep.default_limit100Matches returned when a grep request omits limit.
query.grep.max_limit1,000Largest accepted grep page size.
query.grep.scan_budget_files4,096Files a plan-less allow_scan query may scan.
query.grep.tail_budget_files512Unindexed revisions a query may scan before reporting index lag.

The query.grep.* limits are advertised only when the deployment serves the optional grep query capability.

Capability limitDefaultMeaning
maintenance.gc.min_grace_window_ms1,230,000 msSmallest accepted garbage-collection grace window: 20 minutes, 30 seconds.

These protocol-wide path constraints apply across all deployments. These constraints are enforced for interoperability reasons, not for performance.

Path constraintMaximumMeaning
Display-name length255 UTF-8 bytesLargest stored name for one path component.
Canonical absolute-path length4,096 UTF-8 bytesLargest complete canonical path.
Path depth128 componentsDeepest nesting an absolute path may express.

LoonFS does not currently impose a fixed inode-count ceiling, and all releases are tested for scale through millions of inodes per namespace.

Commit-throughput is a function of commit.max_operations and the CAS rate limit on the object store provider (e.g., GCS has a rate limit of 1 CAS per second).