llvm / llvm/llvm-project

Define LLVMCAS supported OS/filesystem formats

Open
#165,329 0 comments 0 reactions 1 assignee Claimed by @cachemeifyoucan View on GitHub
llvm:CAS
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

Need to defined a set of support (or unsupported) file system / OS for default on-disk LLVMCAS implementation.

LLVMCAS implementation should support most physical file systems on Unix (POSIX + `flock`) and Windows. Some extended tests for correctness has been done on:

* macOS + APFS
* Linux + ext4

It is known to be not working on NFS and if the file system doesn't support sparse files, a large disk space is required to be committed upfront to use the CAS.

While LLVMCAS's ondisk CAS implementation is mostly POSIX, it pushes its boundaries and bugs in OS/filesystems can be exposed to cause data corruption and data loss. Also different FS implementation and present difference performance characteristics, and might cause unusable perf issues.

There is a CAS stress tester (available downstream, to be upstreamed soon) that can be used to test for correctness, but we might need to have other tools/rules to define if the CAS library is usable on the OS/filesystem combination.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.