POSIX compatibility details
Archil disks are designed to be broadly compatible with POSIX semantics, even when the underlying data sources are not POSIX compatible, like Amazon S3. When needed, the Archil storage service emulates file operations on data sources. Today, Archil supports the following POSIX features:- All read and write operations, including random writes and appends
- Symbolic links (
ln -s) - Hard Links (
ln) - Atomic renames, including directory renames (
mv)1 - POSIX locks, including
flockandfcntl2 - Anonymous files (unlink after opening)
- File modes
- File ownership
- Extended attributes (with the
--enable-xattrsflag)
archil invalidate-cache.
2. POSIX locks (
flock/fcntl) are honored between processes on a single client, not across clients that share a disk. Today only one client can open a file for writing, so cross-client lock contention doesn’t arise; coordinate access across clients with the checkout/checkin ownership model.
We are actively working on adding support for the following features:
- File ACLs
renameat2flags, such asRENAME_WHITEOUT
Application support
As a result of our broad compatibility with POSIX, Archil is compatible with all applications which run on a local, POSIX file system. This includes:- Version control systems, such as Git (including large repositories,
git clone,git checkout, andgit status), Mercurial, and Subversion - Databases, such as PostgreSQL, MySQL, and SQLite
- Build tools and compilers, such as Make, CMake, GCC, and Clang
- Archive and compression tools, such as
tar,gzip,zip, andrsync - Editors and IDEs, such as Vim, Emacs, and VS Code
- Containers — mount in a container via a bind mount from the host or FUSE inside the container
Limits
- Path length — on a disk synchronized to a data source, a file’s full path can’t exceed the data source’s object-key length limit (1,024 characters for Amazon S3).