Commit d59a7a56 authored by Ramon Nou's avatar Ramon Nou
Browse files

Document MR 318 replica and cleanup work

parent 83b2f8c8
Loading
Loading
Loading
Loading
Loading
+19 −0
Changes for CHANGELOG.md: 19 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -64,9 +64,28 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
    - Added RAII file-descriptor handling and shared hostfile-management utilities.
  - Expanded diagnostics and engineering tooling.
    - Added RPC consistency checking, static-analysis helpers, compatibility-corpus workflows, logging-scale measurements, CI report indexing, and metadata reporting tools.
  - Path resolution, documentation, and static-analysis cleanup ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318))
    - Removed the deprecated legacy path resolver and `GKFS_USE_LEGACY_PATH_RESOLVE` option.
    - Expanded path-resolution tests and kept mount-boundary behavior covered.
    - Updated copyright years and completed license headers for tracked C++ source and header files.
    - Documented important path, metadata, distribution, replica, repair, migration, logging, and backend APIs.
    - Fixed safe Cppcheck findings, including uninitialized state in client and integration-harness structures.
  - Replica-aware client and topology-mutation support ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318))
    - Added replica-aware data placement and deterministic primary-first read fallback.
    - Added replicated metadata creation, data writes, inline-data operations, size updates, truncate, remove, and cleanup paths in direct-client mode.
    - Added explicit degraded-operation results, replica policies, host-health tracking, bounded backoff, recovery probing, and replica metrics.
    - Added a bounded, coalescing client repair queue with retry limits, exponential backoff, stale-generation suppression, concurrency controls, and shutdown draining.
    - Added optional restart-safe repair journaling with topology identity, owner records, advisory locking, and pending-task recovery.
    - Added replica-count validation, proxy-mode rejection, and disabled incompatible asynchronous writes when replication is enabled.
    - Added copy-indexed replica migration plans with placement-generation validation, source-copy reads, local-source handling, and pre-I/O rejection of stale or malformed plans.
    - Added replica-aware Simple Hash and Random Slicing topology mutation support, including expansion, shrink, CutShift, and migration integrity checks.
    - Added daemon-side mutation safety checks and checkpoint recovery for replicated topologies.
    - Added integration and unit coverage for daemon loss, restart recovery, surviving-copy reads, replicated metadata/data operations, repair journals, migration planning, and Random Slicing replica placement.


### Changed 
  - The canonical path resolver is now exposed through `gkfs::path::resolve()`; the old resolver API was removed ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318)).
  - Cppcheck findings in libc-interception and callback-ABI code remain documented as intentional compatibility cases; unsafe signature or pointer-cast changes were not applied ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318)).
  - Optimized count-only filtered directory listing (`sfind` with `-C`) ([!307](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/307))
    - Avoid client-side buffer allocation and memory exposure for count-only queries.
    - Avoid daemon-side dummy entries vector allocation and resizing during RocksDB iteration.
+0 −1
Changes for CMake/gkfs-config-report.txt.in: 0 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ GKFS_ENABLE_UNUSED_FUNCTIONS=@GKFS_ENABLE_UNUSED_FUNCTIONS@
GKFS_FOLLOW_EXTERNAL_SYMLINKS=@GKFS_FOLLOW_EXTERNAL_SYMLINKS@
GKFS_USE_GUIDED_DISTRIBUTION=@GKFS_USE_GUIDED_DISTRIBUTION@
GKFS_USE_GUIDED_DISTRIBUTION_PATH=@GKFS_USE_GUIDED_DISTRIBUTION_PATH@
GKFS_USE_LEGACY_PATH_RESOLVE=@GKFS_USE_LEGACY_PATH_RESOLVE@

Limits and reporting
--------------------
+0 −7
Changes for CMake/gkfs-options.cmake: 0 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -264,13 +264,6 @@ gkfs_define_option(
    DEFAULT_VALUE ON
)

# use old resolve function
gkfs_define_option(
    GKFS_USE_LEGACY_PATH_RESOLVE
    HELP_TEXT "Use the old implementation of the resolve function"
    DEFAULT_VALUE OFF
)

cmake_dependent_option(GKFS_INSTALL_TESTS "Install GekkoFS self tests" OFF "GKFS_BUILD_TESTS" OFF)


+0 −4
Changes for CMakeLists.txt: 0 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -301,10 +301,6 @@ if (GKFS_BUILD_DOCUMENTATION)
    add_subdirectory(docs)
endif ()

if (GKFS_USE_LEGACY_PATH_RESOLVE)
    add_definitions(-DGKFS_USE_LEGACY_PATH_RESOLVE)
endif ()

if (GKFS_FOLLOW_EXTERNAL_SYMLINKS)
    add_definitions(-DGKFS_FOLLOW_EXTERNAL_SYMLINKS)
endif ()
+0 −1
Changes for README.md: 0 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -925,7 +925,6 @@ Once it is enabled, `--dbbackend` option will be functional.
- `GKFS_MAX_INTERNAL_FDS` - Number of file descriptors reserved for internal use (default: 256)
- `GKFS_MAX_OPEN_FDS` - Maximum number of open file descriptors supported (default: 1024)
- `GKFS_FOLLOW_EXTERNAL_SYMLINKS` - Enable support for following external links into the GekkoFS namespace (default: OFF)
- `GKFS_USE_LEGACY_PATH_RESOLVE` - Use the legacy implementation of the resolve function, deprecated (default: OFF)
- `GKFS_USE_GUIDED_DISTRIBUTION` - Use guided data distributor (default: OFF)
- `GKFS_USE_GUIDED_DISTRIBUTION_PATH` - File Path for guided distributor (default: /tmp/guided.txt)
- `GKFS_BUILD_USER_LIB` - Build the user library (default: ON)
Loading