1. 22 Jul, 2020 1 commit
    • Tigran Mkrtchyan's avatar
      nfsv41: fix race condition during multiple callbacks · c131ddde
      Tigran Mkrtchyan authored
      Motivation:
      The NFSv4.1 server might decide to send multiple callback to a client.
      The parallelism is defined by number of callback slots specified by the
      client. As each slot maintain it's own sequence, a new request can be
      sent only when the slot is not in use.
      
      Modification:
      Introduce a ClientCB$SesionSlot class that represents session slot and
      associated sequence. Introduce a blocking queue, that represents
      available session slots. When slot is used, then it removed from the
      queue and putted back, after callback is complete.
      
      Result:
      Multiple callbacks can be issued to the client in parallel without
      misordering the requests.
      
      Acked-by: Paul Millar
      Target: master
      c131ddde
  2. 21 Jul, 2020 1 commit
    • Tigran Mkrtchyan's avatar
      nfs4: minor version used by callback must by in sync with client · 5f38d46b
      Tigran Mkrtchyan authored
      Motivation:
      When server performs callback to a client it must use the same nfsv4
      minor version as client uses.
      
      Modification:
      store client's minor version information with call-back object.
      
      Result:
      fixes compatibility with nfsv4.2 clients.
      
      Acked-by: Albert Rossi
      Acked-by: Lea Morschel
      Acked-by: Paul Millar
      Target: master, 0.21
      5f38d46b
  3. 17 Jul, 2020 2 commits
  4. 16 Jul, 2020 1 commit
  5. 14 Jul, 2020 1 commit
  6. 13 Jul, 2020 2 commits
  7. 10 Jul, 2020 5 commits
  8. 08 Jul, 2020 2 commits
  9. 07 Jul, 2020 4 commits
  10. 06 Jul, 2020 3 commits
    • Tigran Mkrtchyan's avatar
      docs: describe API changes · 53e8c140
      Tigran Mkrtchyan authored
      53e8c140
    • Tigran Mkrtchyan's avatar
      docs: describe recent API changes · c37d8df2
      Tigran Mkrtchyan authored
      c37d8df2
    • Tigran Mkrtchyan's avatar
      vfs: add IO read/write methods that accept ByteBuffer · 1de61da6
      Tigran Mkrtchyan authored
      Motivation:
      The use of ByteBuffer for IO operations adds more flexibility as ByteBuffers
      can be sliced, shared and passed directly to various channels. Moreover, any
      byte array can be easily wrapped into ByteBuffer, if needed.
      
      Modification:
      added vfs#read and vfs#write methods with default implementation falling
      back to byte array based methods to maintain backward compatibility. Updated
      OperationREAD and OperationWRITE to use the new methods. Deprecate byte
      array based methods.
      
      Result:
      more flexibility with same functionality.
      
      Acked-by: Paul Millar
      Target: master
      1de61da6
  11. 04 Jul, 2020 1 commit
  12. 29 Jun, 2020 1 commit
  13. 25 Jun, 2020 3 commits
    • Tigran Mkrtchyan's avatar
      nfs4: use ConcurrentHashMap for open file tracking · c798bc1a
      Tigran Mkrtchyan authored
      Motivation:
      in a highly concurrent environment the ConcurrentHashMap hash map has
      a better throughput than synchronized hashmap.
      
      Benchmark                                                (map)   Mode  Cnt       Score       Error  Units
      FileTrackerBenchmark.fileTrackerHashMapTest      HashMap  thrpt   25  691051.876 ± 23720.699  ops/s
      FileTrackerBenchmark.fileTrackerHashMapTest  ConcHashMap  thrpt   25  792051.898 ± 18111.740  ops/s
      
      Benchmark with 48 concurrent clients.
      
      Modification:
      Update FileTracker to use ConcurrentHashMap to track open files
      
      Result:
      better throughput in concurrent environment
      
      Acked-by: Lea Morschel
      Target: master
      c798bc1a
    • Tigran Mkrtchyan's avatar
      nfs4: stop using deprecated guava API in tests · d3b3cd75
      Tigran Mkrtchyan authored
      Acked-by: Lea Morschel
      Target: master
      d3b3cd75
    • Tigran Mkrtchyan's avatar
      file-tracker: fix typo in comments · 397b95b7
      Tigran Mkrtchyan authored
      no code changes.
      397b95b7
  14. 18 Jun, 2020 1 commit
  15. 26 May, 2020 2 commits
  16. 21 May, 2020 1 commit
  17. 20 May, 2020 2 commits
  18. 19 May, 2020 1 commit
    • Tigran Mkrtchyan's avatar
      nfs4: simplify stateid4 class · 59550a9c
      Tigran Mkrtchyan authored
      Motivation:
      stateid4 is a struct that holds a byte array and int. No need
      for extra wrapper around int.
      
      Modification:
      use plain int to reduce object creation.
      
      Result:
      simpler code.
      
      Acked-by: Paul Millar
      Acked-by: Svenja Meyer
      Target: master
      59550a9c
  19. 08 May, 2020 1 commit
    • Tigran Mkrtchyan's avatar
      nfs: make spring dependency scope `provided` · 3b8d58d2
      Tigran Mkrtchyan authored
      Motivation:
      as nfs-spring module expected to be used in spring based application,
      we can expect spring libraries to be available at the runtime.
      
      Modification:A
      make spring dependency scope `provided`
      
      Result:
      less mess with transient dependencies for spring based apps.
      
      Acked-by: Lea Morschel
      Acked-by: Paul Millar
      Target: master
      3b8d58d2
  20. 22 Apr, 2020 1 commit
  21. 08 Apr, 2020 2 commits
    • Tigran Mkrtchyan's avatar
      nfs42: implement minimal nfs v4.2 server · 5a36149f
      Tigran Mkrtchyan authored
      Motivation:
      according to rfc 7862 minimal nfs v4.2 server should accept minorversion
      2 requests and can respond 'not supported' to all in the spec defined
      operations.
      
      Modification:
      accept minorversion 2 and respond 'not supported' to
      
      - ALLOCATE
      - COPY
      - COPY_NOTIFY
      - DEALLOCATE
      - IO_ADVISE
      - OFFLOAD_CANCEL
      - OFFLOAD_STATUS
      - READ_PLUS
      - SEEK
      - WRITE_SAME
      - CLONE
      
      Result:
      
      'Noop' spec compliant nfs 4.2 implementation
      
      Acked-by: Lea Morschel
      Target: master
      5a36149f
    • Tigran Mkrtchyan's avatar
      nfs42: add auto-generated code of NFSv4.2 data types · 05f51790
      Tigran Mkrtchyan authored
      Acked-by: Albert Rossi
      Acked-by: Lea Morschel
      Target: master
      05f51790
  22. 06 Apr, 2020 1 commit
  23. 23 Mar, 2020 1 commit