Skip to content
  1. Apr 27, 2018
    • Tommaso Tocci's avatar
      cmake: fix jmalloc find module · 7c891bca
      Tommaso Tocci authored
      Setting the properly the JMALLOC_LIBRARIES variable into the find module
      made possible to avoid the conditonal inclusion of the library
      7c891bca
    • Tommaso Tocci's avatar
      CXX core guidelines: avoid specific return size · 53dd3b6a
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      53dd3b6a
    • Marc Vef's avatar
    • Tommaso Tocci's avatar
      specify functions name in log call · 9d455a8c
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      9d455a8c
    • Tommaso Tocci's avatar
      bugfix: Atomic fiile creation · a7a1ba64
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      The creation was performed through a simple rocksDB PUT operation.
      
      Multiple creation attempts on the same file would override the
      previously inserted metadata, in particular the file size.
      
      The creation is now handled with a new MergeOperand.
      Now a creation attampt on an already existing file will be converted in
      a NOP.
      a7a1ba64
    • Tommaso Tocci's avatar
      Introduce MergeOperand baseclass · deb9d124
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      The new MergeOperand base class can be subclassed in order to implement
      new merge-operands with their specific parameters and semantics.
      deb9d124
    • Tommaso Tocci's avatar
      Simplify UpdateSize Operand · 209af1e9
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      The UpdateSizeOperand has been renamed IncreaseSizeOperand.
      
      The operand was using three parameters size,offset and append_flag.
      
      Since we only need the (size + offset) sum in order to apply the
      operand, the offset field has been removed.
      209af1e9
    • Tommaso Tocci's avatar
      Atomic file size update · 41221c82
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      In order to make the file-size-update operation atomic it is necessary
      to make the following action atomic:
      
       - READ old size value from rocksDB
       - COMPUTE new size based on the write operation
       - WRITE back the new value rocksDB
      
      We use rocksDB merge operation [1] in order to implement the atomic update.
      
      [1]: https://github.com/facebook/rocksdb/wiki/Merge-Operator
      41221c82
    • Tommaso Tocci's avatar
      fix concurrent file removal · 683618cf
      Tommaso Tocci authored and Marc Vef's avatar Marc Vef committed
      with the current storage back-end, chunks of a file are stored in
      several files in a folder on a real kernel-space filesystem.
      
      Removing a file means that we need to remove the entire directory and
      all its sub-files (rm -r).
      This operation is not atomic and it can raise errors if performed
      concurrently..
      
      This commit handles properly this kind of errors.
      683618cf
  2. Apr 12, 2018
  3. Apr 09, 2018
  4. 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
  5. 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
  6. Mar 24, 2018
  7. Mar 23, 2018
  8. Mar 20, 2018
  9. Mar 19, 2018
  10. Mar 15, 2018
  11. Mar 12, 2018
  12. Mar 09, 2018
  13. Mar 07, 2018
    • Tommaso Tocci's avatar
      cmake: make daemon having its own cmake file · 14a4f0b4
      Tommaso Tocci authored
      daemon related cmake directives have been pushed into a standalon cmake
      file into the src/daemon folder.
      14a4f0b4
    • 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
  14. Mar 05, 2018
  15. Mar 02, 2018
  16. Jan 30, 2018
  17. Jan 25, 2018
  18. 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
    • Marc Vef's avatar
      Added: register daemon to system for storing auxiliary files + better daemon... · 5857af5a
      Marc Vef authored
      Added: register daemon to system for storing auxiliary files + better daemon startup and shutdown handling
      5857af5a
  19. Jan 15, 2018
    • Marc Vef's avatar
      Add basic MD_Test functionality · 49a77aac
      Marc Vef authored
      - Add: adafs_access, open with check if object exists
      - Add: root metadentry to database of each node
      - Modified: Open, unlink, mkdir, rmdir and combined their functionality to "create node" and "remove node"
      49a77aac
  20. Jan 12, 2018