1. Mar 18, 2024
  2. Mar 13, 2024
    • Marc Vef's avatar
      Merge branch 'rnou/replication' into 'master' · 137dd33f
      Marc Vef authored
      Data replication (client side, synchronous)
      
      This MR adds support for data replication using one environment variable:
      
      `LIBGKFS_NUM_REPL=<num repl>`
      The number of replicas should go from 0 to the number of servers-1. The replicas are guided by the 
      client, so it reduces write performance but we mantain the same level of consistency. 
      On the other hand, it may increase read performance on some corner scenearios. 
      Metadata replication is also implemented
      The replication environment variable can be set up for each client, independently.
      
      If a server is down, the data will be read from another replica. The metadata management is also done from another replica.
      
      The replication is done in a synchronous way. A new function forward_write is used to sent to the different replicas. The reads are distributed, but this shouldn't produce an performance improvement as the distribution is similar to the original. 
      
      In the case of the write, the original is sent to the target servers, and then the replicas are processed. This is done to avoid issues if a server, that should host a replica, is not available. 
      
      In order to process the replicas a new method to check that a chunk needs to be processed inside a server is included, a bitset of 1024 is sent (coded in base-64 in a string). This represents 1024-chunks per write-read operation. If that is exceeded the normal hash check per chunk is done in the server. Exceeding this value, will disable the replica capabilities and produce unknown behaviours.
      
      This can be potentially increased.
      
      Finally, most of the operations are replica-aware, but some of them are missing yet. i.e., dirent.
      
      See merge request !166
      137dd33f
    • Marc Vef's avatar
      Review · 2835322a
      Marc Vef authored
      2835322a
  3. Mar 10, 2024
    • Marc Vef's avatar
      Cleanup RPC code · d11575d6
      Marc Vef authored
      d11575d6
    • Marc Vef's avatar
      Review changes · a66ae9eb
      Marc Vef authored
      a66ae9eb
    • Ramon Nou's avatar
      Write parameters change · 938b436d
      Ramon Nou authored and Marc Vef's avatar Marc Vef committed
      938b436d
    • Ramon Nou's avatar
      Changelog change and branch · c0ee81e7
      Ramon Nou authored and Marc Vef's avatar Marc Vef committed
      Added NUM_REPL env variable. (0 no replicas)
      
      NUM_REPL  num replicas  (Replicas < servers)
      
      Remove and truncate
      
      Metadata replication
      
      Metadata replication - Reattempt on stat
      
      minimal compilation issues (c++20), srand for repl
      
      Bitset
      
      Bit set proposal (WIP)
      
      Read - Write with bitset (<1024 chunks)
      
      Changed bitset to vector
      
      Added get_fs_config reattempt
      
      Some more resilience on create
      
      Added Replica_Check on write (disabled)
      
      Added helper vector-bitset functions
      c0ee81e7
  4. Feb 19, 2024
  5. Feb 15, 2024
  6. Feb 14, 2024
  7. Feb 06, 2024
  8. Jan 31, 2024
  9. Dec 20, 2023
  10. Nov 28, 2023
  11. Nov 23, 2023
  12. Oct 17, 2023
  13. Oct 16, 2023
  14. Oct 02, 2023
    • Alberto Miranda's avatar
      Merge branch 'rnou/268-remove-parallax-testing' into 'master' · 91d69338
      Alberto Miranda authored
      Resolve "Remove Parallax Testing"
      
      This MR updates testing for the new docker CI environment:
      - Removes Parallax Testing to make faster tests (we will activate again if needed, or changes are applied)
      - Adds cstdint for uint types (gcc 10..)
      - Updates python sh library/package to a newer version. This solves and produces some changes.
      - Solved a bug in sfind
      
      Closes #268
      
      Closes #268
      
      See merge request !169
      91d69338
  15. Sep 29, 2023
  16. Sep 28, 2023
  17. Sep 27, 2023
  18. Sep 22, 2023
  19. Jun 20, 2023
    • Marc Vef's avatar
      Merge branch 'marc/58-support-spack-and-others' into 'master' · 2730a9ce
      Marc Vef authored
      Resolve "Support Spack and others"
      
      ### Usage information
      
      Download Spack and setup environment:
      ```bash
      git clone -c feature.manyFiles=true https://github.com/spack/spack.git
      . spack/share/spack/setup-env.sh
      ```
      Add GekkoFS Spack repository to Spack:
      ```bash
      spack repo add gekkofs/scripts/spack
      ```
      Check that Spack can find GekkoFS:
      ```
      spack info gekkofs
      ```
      Install GekkoFS (and run optional tests). Check `spack info gekkofs` for available option and versions:
      ```bash
      spack install gekkofs
      # for installing tests dependencies and running tests
      spack install -v --test=root gekkofs +tests
      ```
      Load GekkoFS into environment:
      ```
      spack load gekkofs
      ```
      If you want to use the latest developer branch of GekkoFS:
      ```
      spack install gekkofs@latest
      ```
      The default is using version 0.9.1 the last stable release.
      
      ### TODO
      
      - [x] Base Spack functionality, versions, and configuration support
      - [x] Documentation
      - [x] Advanced functionality, more detailed configuration support, e.g., Parallax and Prometheus
      - [x] More easy way to get path to client library
      - [x] Add GekkoFS client wrapper for `LD_PRELOAD`
      - [ ] Add final version to main Spack repository if possible. (Not possible right now as it not clear how 3rd party libraries should be treated.
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      Closes #58
      
      Closes #58
      
      See merge request !137
      v0.9.2_rc1
      2730a9ce
    • Marc Vef's avatar
      Fix Sphinx syntax · 3f59f7ad
      Marc Vef authored
      3f59f7ad
    • Marc Vef's avatar
      Added README FAQ · 8321783b
      Marc Vef authored
      8321783b