Releases: otatebe/chfs
CHFS 3.0.3
Release note for CHFS/Cache 3.0.3 (2024/10/16)
New API
- chfs_access()
- chfs_fstat()
- chfs_ftruncate()
Updated features
- Server-initiated caching
- Default is number-aware hashing, a.k.a. Koyama hashing.
- chfs_unlink() - wait for removing all chunks
- Log open, close, read and write in info level
Bug fixes
- (chfsd) fix incorrect KV_ERR_NO_BACKEND_PATH error
- (chfsd) plug memory leak when flushing
CHFS 3.0.2
Release note for CHFS/Cache 3.0.2 (2024/3/2)
New documents
- chfind
New environment variables
- CHFS_LOOKUP_RELAY_GROUP - specify the number of groups for relayed connections to chfsd
- CHFS_LOOKUP_RELAY_GROUP_AUTO - use relayed connections to chfsd. The number of groups is automatically specified.
Updated features
- chfind - MPI size check
- chstagein - build without mpi if mpi is not found
Bug fixes
- chfind - size should be rounding up
- chstagein - fix -b and -c options
CHFS/Cache 3.0.1
Release note for CHFS/Cache 3.0.1 (2023/12/13)
Updated features
- configure - --with-fuse option to specify the prefix
CHFS/Cache 3.0.0
Release note for CHFS/Cache 3.0.0 (2023/9/11)
CHFS/Cache is a parallel caching file system for node-local storages based on CHFS ad hoc parallel file system. It provides a caching mechanism against a backend parallel file system. Files in the backend parallel file system are automatically cached. Output files are automatically flushed.
How to create file system
% eval `chfsctl [-h hostfile] [-p verbs] [-D] [-c /dev/dax0.0] [-b /back/end/path] [-m /mount/point] start`
The backend directory typically in a parallel file system can be specified by the -b option. Files in the backend directory can be transparently accessed by CHFS. For efficient access, files can be staged-in by chstagein
command beforehand. The output files will be flushed automatically to the backend directory. It is possible to ensure flushing all dirty files by chfs_sync()
or chfsctl stop
.
Technical details
Osamu Tatebe, Hiroki Ohtsuji, "Caching Support for CHFS Node-local Persistent Memory File System", Proceedings of 3rd Workshop on Extreme-Scale Storage and Analysis (ESSA 2022), pp.1103-1110, 2022
CHFS 2.1.2
Release note for CHFS 2.1.2 (2023/9/11)
New API
- chfs_initialized() - check whether chfs_init() is called or not
Updated features
- chfs_init() - display parameters in info level
Bug fixes
- chfs_open() - return EISDIR when opening a directory
CHFS 2.1.1
Release note for CHFS 2.1.1 (2023/7/6)
Updated features
- chfsctl - -NUMACTL option to specify options for numactl
Bug fixes
- fix chfs_pread may return no such file or directory
CHFS 2.1.0
Release note for CHFS 2.1.0 (2023/5/11)
New environment variables
- CHFS_LOOKUP_LOCAL - connect to a local chfsd only
New features
- chfsctl - -x option to export environment variable
- chfsctl - -i option to specify an interval in seconds to execute chfsd
Updated features
- libchfs - randomize order for RPCs for all servers
- chfsctl - warn if less number of servers running
Bug fixes
- fix compilation error in gcc 9.4.0
- chfsd - chfsd does not terminate
- chfsd - chfs_symlink may fail
CHFS 2.0.0
Release note for CHFS 2.0.0 (2022/10/21)
New commands
- chfind - parallel find
New environment variables
- CHFS_ASYNC_ACCESS - enable asynchronous read and write
- CHFS_BUF_SIZE - specify client buffer size. Default is zero.
New APIs
- chfs_seek - reposition read/write file offset
- chfs_readdir_index - read a directory in a specified server
New features
- support pkgconfig
- support rpath
- Docker containers for developers
Updated features
- chfs_unlink - improve performance
- change defaults. Default chunk size is 64 KiB.
Bug fixes
- libchfs - chfs_init returns no server when it is called more than the number of servers
- chfsd - fix memory leak when margo_get_input fails
- chfsd - fix election sometimes failing
- chfsd - introduce lock in KV backend
- chfsd - fix segfaults when shutting down
CHFS 1.0.0
CHFS - Consistent hashing file system
CHFS is a parallel consistent hashing file system for node-local storages. File chunks are distributed among file servers using consistent hashing.
How to create file system
% eval `chfsctl [-h hostfile] [-p verbs] [-c /scr] [-m /mount/point] start`
This executes chfsd servers and mounts the CHFS at /mount/point on hosts specified by the hostfile. The -p option specifies communication protocol. The -c option specifies a scratch directory on each host.