Skip to content
  1. Apr 27, 2018
    • Tommaso Tocci's avatar
      Avoid global Boost includes · 2ec4f3b0
      Tommaso Tocci authored
      2ec4f3b0
    • 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 16, 2018
  3. Apr 12, 2018
  4. Apr 10, 2018
    • Marc Vef's avatar
      Read: Making zeroing of buffer configurable · 6806c50d
      Marc Vef authored
      It is only relevant for sparse files but the current implementation
      has a too high overhead on a single node (~10%). We need to find
      a better solution at a later point.
      6806c50d
  5. Apr 09, 2018
  6. Apr 08, 2018
  7. Apr 06, 2018
    • Tommaso Tocci's avatar
      Avoid creation of OpenFile for non-existing files · dc0cf736
      Tommaso Tocci authored
      Postpone the creation of the OpenFile object until we are sure that the
      file actually exists and we have enough access rigths for it.
      dc0cf736
    • Tommaso Tocci's avatar
      corretly set errno on check_access · d573a07a
      Tommaso Tocci authored
      Problem:
      In the case the path for which the check access is performed doesn't
      exists the server will set `out.err` with the correct error number (ENOENT).
      On client side the value of out.err is used as return value but the
      errno variable is not set.
      d573a07a
  8. Apr 05, 2018
  9. Apr 03, 2018
    • Tommaso Tocci's avatar
      Correctly set file type · 94ace34f
      Tommaso Tocci authored
      Since POSIX.1-2001 the S_IFMT (0170000) bitmask of the file mode must
      contain the file type.
      
      At the moment we correctly support
       - [S_IFREG] regular file
       - [S_IFDIR] directory
      94ace34f
  10. 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
  11. Mar 25, 2018
  12. Mar 24, 2018
  13. Mar 23, 2018
  14. Mar 22, 2018
  15. Mar 20, 2018
  16. Mar 19, 2018