Skip to content
  1. Mar 05, 2019
  2. 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
  3. Dec 07, 2018
    • Tommaso Tocci's avatar
      Drop margo init patch · e6dbe7c6
      Tommaso Tocci authored
      Changes have been merged upstream [1] with commit `acb8c296a694d7e3e06756e7a102a9d1c92df0c8`.
      There is no more need to patch margo to expose enanched init function.
      
      [1]: https://xgitlab.cels.anl.gov/sds/margo/merge_requests/9
      e6dbe7c6
  4. Dec 06, 2018
  5. Nov 26, 2018
  6. Nov 07, 2018
  7. Nov 04, 2018
  8. Oct 31, 2018
    • Tommaso Tocci's avatar
      e55ff409
    • Tommaso Tocci's avatar
      Implement (f)truncate · f60f2d19
      Tommaso Tocci authored
      Implemented all the logic to handle truncate operation.
      
      Test: added truncate test
      f60f2d19
    • Tommaso Tocci's avatar
      Make ChunkStorage aware of chunksize · 94a44560
      Tommaso Tocci authored
      The ChunkStorage class now store the chunksize in order to perform
      runtime checks upon chunks bundaries.
      94a44560
    • Tommaso Tocci's avatar
      use mercury automatic SM routing · c40be81b
      Tommaso Tocci authored
      Mercury now support shared memory autorouting.
      
      A single margo instance can be initialized and it will handle both
      shared memory communication and remote ones.
      
      If the endpoint of the RPC is local mercury will automatically use
      shared memory.
      
      Since there is only one margo instance all the duplicated code for
      rpc/ipc have been unified and simplified considerably.
      
      ------
      
      The way in which client contact the server has changed.
      
       - Server initializes its own margo instance and generate the endpoint
      communication string using `HG_Addr_self`.
       - This endpoint description string is written on the pid file
       - When the client library loads it will fetch the server endpoint
      description from the pid file and will use that to contact the server.
      c40be81b
  9. Oct 29, 2018
  10. Oct 28, 2018
    • Tommaso Tocci's avatar
      update deps, drop abt-snoozer · b0c8d184
      Tommaso Tocci authored
      margo, argobots and mercury have been updated. The abt-snoozer dep
      required by margo it is not needed anymore.
      
      RocksDB has been also updated to the lastest release
      b0c8d184
    • Tommaso Tocci's avatar
      makes logs configurable at exec time · 1ad8f4e4
      Tommaso Tocci authored
      loggers can be now configured at execution time, by using environment
      variables for both server and client.
      
      Server:
       - ADAFS_LOG_LEVEL
       - ADAFS_DAEMON_LOG_PATH
      
      Client:
       - ADAFS_LOG_LEVEL
       - ADAFS_PRELOAD_LOG_PATH
      1ad8f4e4
  11. May 11, 2018
  12. May 10, 2018
    • Tommaso Tocci's avatar
      Add support for basic directories calls · 33865a14
      Tommaso Tocci authored
      Support for the following calls has been added:
       - opendir
       - readdir
       - closedir
      
      The readdir call use the new RPC get_dirents that ask to all the
      nodes (broadcast) about all the existing first-level entries
      of a specific directory.
      33865a14
    • Tommaso Tocci's avatar
      Daemon: root directory must be relative · 28db5904
      Tommaso Tocci authored
      Now that we use only relative path on daemon side,
      also the initial creation of the root directory should be
      use a relative path.
      28db5904
  13. May 09, 2018
  14. May 08, 2018
    • Tommaso Tocci's avatar
      Multiple logs handling · df0aee7e
      Tommaso Tocci authored
      During daemon setup, multiple spdloggers are configured.
      
      Using spdlog::get("<LOGNAME>") is possible to retrieve those and use
      them in other part of the code.
      df0aee7e
  15. Apr 27, 2018
  16. Apr 08, 2018
    • Tommaso Tocci's avatar
      cli: look for --help flag first · 89ecb7b2
      Tommaso Tocci authored
      Since the introduction of required parameters wasn't possible to show
      the help message.
      In fact the --help flag was checked after all other parameters.
      89ecb7b2
  17. Apr 02, 2018
    • Marc Vef's avatar
      Daemon now creates a pid file with pid and mountdir info for clients · fe7e5ee3
      Marc Vef authored
      Previously, clients would look for the daemon by name which was not robust.
      If the daemon was started with valgrind for example, clients would not find
      the daemon.
      
      Similar to other applications a daemon now creates a pid file with
      information about its pid and its started mountdir.
      
      Proper errorhandling on server and client side was added.
      
      Multiple daemons per node are explicitly not allowed for now!
      fe7e5ee3
  18. Mar 24, 2018
  19. Mar 23, 2018
  20. Mar 09, 2018
  21. 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
  22. Mar 05, 2018
  23. Mar 02, 2018
  24. Jan 30, 2018
  25. Jan 25, 2018
  26. Jan 24, 2018
    • Marc Vef's avatar
      Preload lib: RPC/IPC Mercury/Margo environments are only initialized if the... · f54c7cd9
      Marc Vef authored
      Preload lib: RPC/IPC Mercury/Margo environments are only initialized if the mountdir path is used by the application
      For that, the daemon writes the mountdir (it was started with) to a configurable path to disk.
      The libraries read this value and only the process that uses part of this path will actually trigger the environment initialization.
      This forbids prior behavior where applications initialize the whole environment numerous times, although unused.
      For example, any MPI program will spawn multiple processes, all with the LD_PRELOAD environment variable set.
      f54c7cd9