diff --git a/CHANGELOG.md b/CHANGELOG.md index 1090f98d542f15d773701b3bc89339eb9e21922c..6cc989742dc8175de8efc20e41150aad41e55b5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.0] - 2020-09-15 +## Added +- Both client library and daemon have been extended to support the ofi+verbs + protocol. +- A new Python testing harness has been implemented to support integration + tests. The end goal is to increase the robustness of the code in the mid- to + long-term. +- The RPC protocol and the usage of shared memory for intra-node communication + no longer need to be activated on compile time. New arguments + `-P|--rpc-protocol` and `--auto-sm` have been added to the daemon to this + effect. This configuration options are propagated to clients when they + initialize and contact daemons. +- Native support for the Omni-Path network protocol by choosing the `ofi+psm2` + RPC protocol. Note that this requires `libfabric`'s version to be greater + than `1.8` as well as `psm2` to be installed in the system. Clients must set + `FI_PSM2_DISCONNECT=1` to be able to reconnect once the client is shut down + once. + *Known limitations:* Client reconnect doesn't always work. Apparently, if + clients reconnect too fast the servers won't accept the connections. Also, + currently more than 16 clients per node are not supported. +- A new execution mode called `GekkoFWD` that allows GekkoFS to run as + a user-level I/O forwarding infrastructure for applications. In this mode, + I/O operations from an application are intercepted and forwarded to a single + GekkoFS daemon that is chosen according to a pre-defined distribution. In the + daemons, the requests are scheduled using the AGIOS scheduling library before + they are dispatched to the shared backend parallel file system. +- The `fsync()` system call is now fully supported. +## Changed +- Argobots tasks in the daemon are now wrapped in a dedicated class, + effectively removing the dependency. This lays ground work for future + non-Argobots I/O implementations. +- The `readdir()` implementation has been refactored and improved. +- Improvements on how to the installation scripts manage dependencies. +## Fixed +- The server sometimes crashed due to uncaught system errors in the storage + backend. This has now been fixed. +- Fixed a bug that broke `ls` on some architectures. + ## [0.7.0] - 2020-02-05 ## Added - Adedd support for `eventfd()`and `eventfd2()` system calls. diff --git a/CMakeLists.txt b/CMakeLists.txt index 965bea6fded732d59b0e28fa2fb10585ebc74c48..2f3a2a1904891c7b0db0b2cf55fb67151822efa9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.6) project( GekkoFS - VERSION 0.7.0 + VERSION 0.8.0 ) enable_testing() diff --git a/README.md b/README.md index 97cb559fc67f2447081a07d3afe0cf7140a0f397..96c439c45fa6cf63e504ccef52955ef2701d2663 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ # GekkoFS + +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) +[![pipeline status](https://storage.bsc.es/gitlab/hpc/gekkofs/badges/master/pipeline.svg)](https://storage.bsc.es/gitlab/hpc/gekkofs/commits/master) + GekkoFS is a file system capable of aggregating the local I/O capacity and performance of each compute node in a HPC cluster to produce a high-performance storage space that can be accessed in a distributed manner. This storage space allows HPC applications and simulations to run in isolation from each other with regards @@ -161,7 +165,7 @@ Allowed options: available. -r [ --rootdir ] arg Local data directory where GekkoFS data for this daemon is stored. - -i [ --metadir ] arg Metadata directory where GekkoFS' RocksDB data + -i [ --metadir ] arg Metadata directory where GekkoFS RocksDB data directory is located. If not set, rootdir is used. -l [ --listen ] arg Address or interface to bind the daemon to. Default: local hostname.