1. Jul 28, 2020
    • Marc Vef's avatar
      Fixing index loop bug during I/O on the daemon · 27839240
      Marc Vef authored and Alberto Miranda's avatar Alberto Miranda committed
      27839240
    • Marc Vef's avatar
      Refactoring daemon I/O logic and fixing truncate etc. · bcb30ac2
      Marc Vef authored and Alberto Miranda's avatar Alberto Miranda committed
      The `ChunkStorage` backend class on the daemon was throwing `system_errors` without being caught, crashing the server in the process. `ChunkStorage` now uses a designated error class for errors that might occur. In addition the dependency to Argobots was removed which was used to trigger `ABT_eventuals`, laying ground work for future non-Argobots IO implementations. Further, the whole class was refactored for consistency and failure resistance.
      
      A new class `ChunkOperation` is introduced which wraps Argobots' IO task operations which allows the removal of IO queue specific code within RPC handlers, i.e., read and write handlers. The idea is to separate eventuals, tasks and their arguments from handler logic into a designated class. Therefore, an object of an inherited class of `ChunkOperation` is instantiated within the handlers that drives all IO tasks. The corresponding code was added to the read and write RPC handlers. Note, `ChunkOperation` is not thread-safe and is supposed to be called by a single thread.
      
      In addition, truncate was reworked for error handling (it crashed the server on error) and that it uses the IO queue as well since truncate causes a write operation and should not overtake IO tasks in the queue.
      
      The chunk stat rpc handler was refactored for error handling and to use error codes as well. 
      
      Further minor changes:
      - dead chunk stat code has been removed
      - some namespaces were missing: `gkfs::rpc`
      - more flexible handler cleanup and response code
      - fixed a bug where the chunk dir wasn't removed when the metadata didn't exist on the same node
      bcb30ac2
  2. Feb 20, 2020
  3. Feb 19, 2020
  4. Feb 18, 2020
  5. Feb 10, 2020
  6. Feb 09, 2020
  7. Feb 07, 2020
    • Marc Vef's avatar
      Code Maintenance: Configurations, definitions, adafs to gkfs · 053cd9a5
      Marc Vef authored
      Restructuring code w.r.t. configurations and definitions:
      - #defines have been mostly removed from configurations
      - a dedicated config file has been added for configurations with constexpr
      - past configure file is now only a cmake wrapper
      - wrapping global functions into namespaces
      
      Removed all adafs and ifs occurrences. Now called gkfs
      053cd9a5
  8. Jul 29, 2019
  9. Jul 26, 2019
  10. Jul 15, 2019
  11. Jul 04, 2019
  12. Jun 26, 2019
  13. Apr 24, 2019
  14. Apr 17, 2019
  15. Mar 05, 2019
  16. Jan 31, 2019
    • Tommaso Tocci's avatar
      improved statfs and statvfs · 23c5faf1
      Tommaso Tocci authored
       - improved statfs system call
       - intercepted statvfs library call
      
      Both of the above function now report the aggregated real size
      of all the data-nodes.
      
      You can test this with `df "/tmp/gekkofs_mountpoint"` command
      23c5faf1
  17. Nov 04, 2018
  18. Oct 31, 2018
  19. May 11, 2018
  20. May 09, 2018
    • Tommaso Tocci's avatar
      ChunkStorage: Acknoledge R/W before close() · 366d84e1
      Tommaso Tocci authored
      Acknowledge the main thread that the IO operation had terminate before
      to actually close the file.
      
      This is a "dirty" fix that waits to be refactored.
      
      WARNING: Error on close will not be reported to the client that issued the IO
      operation.
      366d84e1
    • Tommaso Tocci's avatar
      Wrap data ops into ChunkStorage class · 14a835da
      Tommaso Tocci authored
      Data operation has been grouped under a ChunkStorage class
      that will manage all the data backend operations.
      
      The instance of this object is stored into the ADAFS_DATA sigleton.
      14a835da
  21. Apr 12, 2018
  22. Mar 15, 2018
  23. Mar 07, 2018
    • Marc Vef's avatar
    • Marc Vef's avatar
      Restructuring directory hierarchy of the project + re-adding header files to CMake sources. · 138e04ca
      Marc Vef authored
      - Previously the directory hierarchy was not clear regarding to which
        file belong to which part of the project (client or daemon).
        Further, we will have other clients in the future (such as Fuse).
      - CMake files now differentiate between include dirs for all targets
        and target specific ones.
      - Removed duplicate -pg flag.
      - Not listing header files when adding executables or libraries
        is considered bad practice. Note that include_directories() is adding
        include paths to the code while adding all files used for executables
        and libraries provide the context which files belong to each binary.
        When only include_directories() is set, CMake assumes that all files
        belong to a binary (which is not necessarily true). As a result,
        some IDEs may break as the do not support this assumption.
      
        In general we should almost always favor explicitness over implicitness.
      138e04ca
  24. Dec 13, 2017
  25. Dec 01, 2017