All Projects → 4ge32 → aeon

4ge32 / aeon

Licence: GPL-2.0 License
AEON is an In-place file system designed for non-volatile memories.

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to aeon

fs.c
File system API much like Node's fs module (synchronous)
Stars: ✭ 65 (+400%)
Mutual labels:  filesystem
pyftpsync
Synchronize directories using FTP(S), SFTP, or file system access.
Stars: ✭ 85 (+553.85%)
Mutual labels:  filesystem
asl
A C++ cross-platform library including JSON, XML, HTTP, Sockets, WebSockets, threads, processes, logs, file system, CSV, INI files, etc.
Stars: ✭ 44 (+238.46%)
Mutual labels:  filesystem
TLightFileStream
Implements a lightweight, high-performance, non-allocating advanced-record-based wrapper around the SysUtils file handling routines as an alternative to Classes.TFileStream.
Stars: ✭ 21 (+61.54%)
Mutual labels:  filesystem
anyfs
Portable file system for Node
Stars: ✭ 17 (+30.77%)
Mutual labels:  filesystem
FireFiles
Powerful Android File Manager for everything that runs on Android OS (Android TV, Android Watch, Mobile, etc)
Stars: ✭ 37 (+184.62%)
Mutual labels:  filesystem
ranger-zoxide
Easily jump between common directories in ranger
Stars: ✭ 34 (+161.54%)
Mutual labels:  filesystem
redis-fs
Mount a Redis database as a filesystem using fuse.
Stars: ✭ 76 (+484.62%)
Mutual labels:  filesystem
filesystem picker
FileSystem file or folder picker dialog.
Stars: ✭ 44 (+238.46%)
Mutual labels:  filesystem
mongoose-gridfs
mongoose gridfs on top of new gridfs api
Stars: ✭ 79 (+507.69%)
Mutual labels:  filesystem
echfs
The echfs filesystem
Stars: ✭ 150 (+1053.85%)
Mutual labels:  filesystem
SharpPhysFS
Managed wrapper for the PhysFS library
Stars: ✭ 14 (+7.69%)
Mutual labels:  filesystem
replace-in-files
Replace text in one or more files or globs.
Stars: ✭ 21 (+61.54%)
Mutual labels:  filesystem
ext2py
The slowest ext2fs driver ever! (in Python)
Stars: ✭ 14 (+7.69%)
Mutual labels:  filesystem
filesystem
Wrapper for WordPress' Filesystem for easier file manipulations
Stars: ✭ 19 (+46.15%)
Mutual labels:  filesystem
ksmbd
ksmbd kernel server(SMB/CIFS server)
Stars: ✭ 98 (+653.85%)
Mutual labels:  filesystem
moodle-tool objectfs
Object file storage system for Moodle
Stars: ✭ 61 (+369.23%)
Mutual labels:  filesystem
DroidFS
Encrypted overlay filesystems implementation for Android. Also available on gitea: https://forge.chapril.org/hardcoresushi/DroidFS
Stars: ✭ 152 (+1069.23%)
Mutual labels:  filesystem
consul-generator
📦 Creates files from consul keys
Stars: ✭ 15 (+15.38%)
Mutual labels:  filesystem
parallel-disk-usage
Highly parallelized, blazing fast directory tree analyzer
Stars: ✭ 145 (+1015.38%)
Mutual labels:  filesystem

AEON: A file system designed for NVMM

AEON is a file system designed for Non-volatile main memory (NVMM) with scalability in mind.

AEON maps the entire NVMM region to a kernel virtual address space to enhance performance. AEON protects the mapped address space with write windows scheme when the option is enabled.

Blocks allocation of AEON is fast and scalable. AEON has multiple allocation groups as same as the number of CPU cores and allocates blocks with a hint from running CPU to enhance allocation efficiency.

Inode allocation of AEON is also fast and scalable. AEON has inode caches as same as the number of CPU cores. AEON allocates a region for new inode from a cache which chooses from a running CPU and released inodes connect the corresponding inode cache. When released inodes region is existing, AEON reuses it preferentially with the temporal locality in mind. This mind applies for the other meta-data allocation.

AEON updates all data in-place for performance. AEON updates meta-data with mutual pointer protection to enhance high performance with atomicity.

Not this feature merged to master fully. AEON can handle NUMA NVDIMM architecture efficiently to map each NUMA node to a kernel virtual address space separately. AEON switches the mapped head address per NUMA node to use each NUMA node. Thanks to this design, AEON exploits the NUMA NVDIMM architecture and can scale under the heavy concurrent situation. The experimental code is here.

COMPRESSION MODE

AEON is equipped with compression mode by the zstd library (Not stable).

Supported Linux kernel version

Linux kernel 4.19.4 or higher

Building and Using AEON

You can set up the environment of with NVMMs and try it even if you don't have real devices. To set up the environment, this site can be helpful.

The basic mount flow is following:

make -j
insmod aeon.ko
mount -t aeon -o dax $DEV $MNT

When first mounting, the init option is needed for initialization. AEON doesn't have an appropriate mkfscommand so far.

Hacking and Contirubuting

If you find bugs, please report them.

If you have other questions or suggestions, you contact me at shfy1014[at]google.com.

Further details

See this document. (Japanese)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].