This release features many additions, improvements, bug fixes, and stability updates to the code base. Among others, this release includes considerable overhauls of dependency scripts, testing facilities, and documentation as well as optimized metadata operations and a new distribution mode (the guided distributor) which allows defining a specific distribution of data on a per directory or file basis. Moreover, GekkoFS is now using C++17 and supports the most recent dependencies. Finally, GekkoFS is now published under the GNU General Public License version 3. Please refer to the change log for more detailed information.
New
- GekkoFS now uses C++17 (!74).
- Added a new
dirents_extended
function which can improvefind
operations. A corresponding example how to use this function can be found atexamples/gfind/gfind.cpp
with a non-mpi version atexamples/gfind/sfind.cpp
(!73). - Code coverage reports for the source code are now generated and tracked (!77).
- Considerable overhaul and new features of the GekkoFS testing facilities (!120, !121).
- Namespace have been added to the complete GekkoFS codebase (!82).
- The system call
socketcall()
is now supported (!91). - System call error codes are now checked in
syscall_no_intercept
scenarios in non x86 architectures (). - GekkoFS documentation is now automatically generated and published here (!95, !109, !125).
- Added a guided distributor mode which allows defining a specific distribution of data on a per directory or file basis (!39).
- For developers:
- A convenience library has been added for unit testing (!94).
- Code format is now enforced with the
clang-format
tool (!66). A new script is available inscripts/check_format.sh
for easy of use. GKFS_METADATA_MOD
macro has been added allowing the MetadataModule to be logged, among others (!98).- A convenience library has been added for path operations:
path_util
(!102).
Changed
- GekkoFS license has been changed to GNU General Public License version 3 (!88)
- Create, stat, and remove operation have been refactored and improved, reducing the number of required RPCs per operation (!60).
- Syscall_intercept now supports glibc version 2.3 or newer (!72).
- All arithmetic operations based on block sizes, and therefore chunk computations,
are now
constexpr
(!75). - The CI pipeline has been significantly optimized (!103).
- The GekkoFS dependency download and compile scripts have been severely refactored and improved (!111).
- GekkoFS now supports the latest dependency versions (!112).
Removed
- Boost is no longer used for the client and daemon (!90,
!122,
!123).
Note that tests still require
Boost_preprocessor
. - Unneeded sources in CMake have been removed (!101).
Fixed
- Building tests no longer proceeds if virtualenv creation fails (!68).
- An error where unit tests could not be found has been fixed (!79).
- The daemon can now be restarted without losing its namespace (!85).
- An issue has been resolved that required AGIOS even if it wasn’t been used (!104).
- Several issues that caused docker images to fail has been resolved (!105, !106, !107, !114).
- An CMake issue in
path_util
that caused the compilation to fail was fixed (!115). - Fixed an issue where
ls
failed because newer kernels usefstatat()
withEMPTY_PATH
(!116). - Fixed an issue where
LOG_OUTPUT_TRUNC
did not work as expected (!118).