Commit 2510eb20 authored by Ramon Nou's avatar Ramon Nou
Browse files

Changelog update

parent 4caffc64
Loading
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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))
+3 −0
Original line number Diff line number Diff line
@@ -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
+0 −9
Original line number Diff line number Diff line
@@ -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;
+0 −2
Original line number Diff line number Diff line
@@ -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);
            }