Loading CHANGELOG.md +13 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,19 @@ All notable changes to GekkoFS project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### New - directory optimization with compression and reattemp ([!270](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/270)) - Refactor sfind so it can use SLURM_ environment variables to ask to different servers. - Create a sample bash script to gather all the info (map->reduce) - Compress directory data with zstd. - Make a new config.hpp option for controlling the compression - If directory buffer is not enough it will reattempt with the exact size ### Changed ### Fixed ## [0.9.5] - 2025-08 ### New - Added cppcheck code checking capabilities ([!214](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/214)) Loading README.md +3 −0 Original line number Diff line number Diff line Loading @@ -587,6 +587,9 @@ Client-metrics require the CMake argument `-DGKFS_ENABLE_CLIENT_METRICS=ON` (see - `LIBGKFS_METRICS_IP_PORT` - Enable flushing to a set ZeroMQ server (replaces `LIBGKFS_METRICS_PATH`). - `LIBGKFS_PROXY_PID_FILE` - Path to the proxy pid file (when using the GekkoFS proxy). - `LIBGKFS_NUM_REPL` - Number of replicas for data. #### Directory optimizations Set `true` the variable `use_dirents_compression` available at `include/config.hpp` to transfer directories compressed with zstd. #### Caching ##### Dentry cache Improves performance for `ls -l` type operations by caching file metadata for subsequent `stat()` operations during Loading src/client/gkfs_functions.cpp +0 −9 Original line number Diff line number Diff line Loading @@ -1564,15 +1564,6 @@ gkfs_rmdir(const std::string& path) { } assert(ret.second); auto open_dir = ret.second; // LOG all entries LOG(DEBUG, "rmdir check - entries in dir '{} {}':", path, open_dir->size()); for(size_t i = 0; i < open_dir->size(); i++) { auto de = open_dir->getdent(i); LOG(DEBUG, "rmdir check - name: {} type: {}", de.name(), (de.type() == gkfs::filemap::FileType::directory) ? "dir" : "regular"); } // only . and .. should be present if(open_dir->size() != 2) { errno = ENOTEMPTY; return -1; Loading src/client/rpc/forward_metadata.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -791,8 +791,6 @@ forward_get_dirents(const string& path) { std::string name(ptr); ptr += name.size() + 1; // Advance past name + \0 LOG(DEBUG, "{}() Retrieved dirent: '{}' is_dir: {}", __func__, name, is_dir); open_dir->add(name, is_dir ? gkfs::filemap::FileType::directory : gkfs::filemap::FileType::regular); } Loading Loading
CHANGELOG.md +13 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,19 @@ All notable changes to GekkoFS project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### New - directory optimization with compression and reattemp ([!270](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/270)) - Refactor sfind so it can use SLURM_ environment variables to ask to different servers. - Create a sample bash script to gather all the info (map->reduce) - Compress directory data with zstd. - Make a new config.hpp option for controlling the compression - If directory buffer is not enough it will reattempt with the exact size ### Changed ### Fixed ## [0.9.5] - 2025-08 ### New - Added cppcheck code checking capabilities ([!214](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/214)) Loading
README.md +3 −0 Original line number Diff line number Diff line Loading @@ -587,6 +587,9 @@ Client-metrics require the CMake argument `-DGKFS_ENABLE_CLIENT_METRICS=ON` (see - `LIBGKFS_METRICS_IP_PORT` - Enable flushing to a set ZeroMQ server (replaces `LIBGKFS_METRICS_PATH`). - `LIBGKFS_PROXY_PID_FILE` - Path to the proxy pid file (when using the GekkoFS proxy). - `LIBGKFS_NUM_REPL` - Number of replicas for data. #### Directory optimizations Set `true` the variable `use_dirents_compression` available at `include/config.hpp` to transfer directories compressed with zstd. #### Caching ##### Dentry cache Improves performance for `ls -l` type operations by caching file metadata for subsequent `stat()` operations during Loading
src/client/gkfs_functions.cpp +0 −9 Original line number Diff line number Diff line Loading @@ -1564,15 +1564,6 @@ gkfs_rmdir(const std::string& path) { } assert(ret.second); auto open_dir = ret.second; // LOG all entries LOG(DEBUG, "rmdir check - entries in dir '{} {}':", path, open_dir->size()); for(size_t i = 0; i < open_dir->size(); i++) { auto de = open_dir->getdent(i); LOG(DEBUG, "rmdir check - name: {} type: {}", de.name(), (de.type() == gkfs::filemap::FileType::directory) ? "dir" : "regular"); } // only . and .. should be present if(open_dir->size() != 2) { errno = ENOTEMPTY; return -1; Loading
src/client/rpc/forward_metadata.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -791,8 +791,6 @@ forward_get_dirents(const string& path) { std::string name(ptr); ptr += name.size() + 1; // Advance past name + \0 LOG(DEBUG, "{}() Retrieved dirent: '{}' is_dir: {}", __func__, name, is_dir); open_dir->add(name, is_dir ? gkfs::filemap::FileType::directory : gkfs::filemap::FileType::regular); } Loading