- 17 Jul, 2019 2 commits
-
-
Tigran Mkrtchyan authored
-
Tigran Mkrtchyan authored
Motivation: as nfs4j api is not stable yet, breaking changes have to be documented. Modification: add API-changes.md as well as warning in the README.md Result: library users are better informed. Acked-by: Paul Millar Acked-by: Lea Morschel Acked-by: Olufemi Adeyemi Target: master
-
- 15 Jul, 2019 1 commit
-
-
Tigran Mkrtchyan authored
-
- 10 Jul, 2019 3 commits
-
-
Tigran Mkrtchyan authored
Motivation: When client want's to inform metadata server about errors or statistics in its interactions with the layout, then LAYOUTERROR and LAYOUTSTATS operations are called. This information have to be propagated to the pnfs device manager. Modification: Add NFSv41DeviceManager#layoutError and NFSv41DeviceManager#layoutStats methods. Update corresponding operations to pass requests to device manager. Result: Layout usage errors and statistics available to the pnfs device manager. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
- 09 Jul, 2019 3 commits
-
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
stats mode field must contain file system object type Acked-by: Paul Millar Target: master
-
- 08 Jul, 2019 4 commits
-
-
Tigran Mkrtchyan authored
Motivation: improve test coverage Modification: Add OperationLAYOUTCOMMITTest to test leyout commit with read-only open state. Result: better code coverage. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Motivation: Current implementation of layout commit operation assumes that only action that have to be done is updating file size. However, the back-end system may perform other actions as well if required. Modification: Introduce NFSv41DeviceManager#layoutCommit method. The driver implementation should take care to update file size, if required. The sanity check of a valid state it is sill performed as a part of genetic request processing. Result: The layout driver gets possibility to handle commit operation. Acked-by: Albert Rossi Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Motivation: as findbugs is dead move to the successor https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2017-September/004383.html Modification: enable spotbugs plugin that can be activated by: ``` mvn spotbugs:spotbugs ``` Result: use up-to-date static code analysis tool Target: master Acked-By: Paul Millar
-
- 05 Jul, 2019 3 commits
-
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
Tigran Mkrtchyan authored
Motivation: pNFS operations have usually have multiple arguments. This require that corresponding methods as well accept multiple arguments, which makes code looks a bit messy. Modification: re-factor NFSv41DeviceManager interface to accept corresponding XDR arguments without extracting each field. Result: simple code. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Acked-by: Lea Morschel Target: master, 0.18
-
- 01 Jul, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: The NFSv4OperationFactory interface provides only a method to retrieve nfs operation for a given request. The request execution is done by nfs server itself. Though a different factories can be provided, the way how requests are executed can't be changed. The example of such desired change can be execution metrics, fault injection, notifications. Modification: Introduce OperationExecutor interface. Introduce AbstractOperationExecutor that provides a generic implementation of request execution, but sill allows subclasses to control which requests are supported. Removed RequestExecutionTimeGauges and OperationFactoryMXBeanImpl as they can be added by subclassing/wrapping an instance of OperationExecutor. Though this is a breaking change, code migration should be easy: MDSOperationFactory -> MDSOperationExecutor NFSServerV41 nfs4 = new NFSServerV41.Builder() .withExportTable(exportFile) .withVfs(vfs) .withOperationExecutor(new MDSOperationExecutor()) .build(); Result: A way to inject different strategies for request execution Acked-by: Paul Millar Target: master
-
- 24 Jun, 2019 1 commit
-
-
Tigran Mkrtchyan authored
deprecate NFSServerV41Factory#setExportFile in favor for new method Acked-by: Paul Millar Target: master
-
- 22 Jun, 2019 2 commits
-
-
Tigran Mkrtchyan authored
Modified V3 Components to Use ExportTable
-
Adam Marcionek authored
Signed-off-by:
Adam Marcionek <amarcionek@seven10storage.com>
-
- 21 Jun, 2019 3 commits
-
-
Adam Marcionek authored
Signed-off-by:
Adam Marcionek <amarcionek@seven10storage.com>
-
Adam Marcionek authored
Signed-off-by:
Adam Marcionek <amarcionek@seven10storage.com>
-
Tigran Mkrtchyan authored
isPesudoInode -> isPseudoInode Reported-by:
David Kocher <dkocher@iterate.ch> Acked-by: Lea Morschel Acked-by: Paul Millar Target: master
-
- 17 Jun, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
- 14 Jun, 2019 2 commits
-
-
Tigran Mkrtchyan authored
improve code coverage Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Motivation: current code have some issues: - the pseudo file systems directory cookie starts with zero, which is not allowed. - listing in pseudo file system ignores provided cookie. Modification: update listPseudoDirectory to generate cookies stargin from 3, as 0, 1 and 2 are reserved values. Return tail of listing started from cookie, if provided. Result: fixed directory listing in pseudo file system with non zero initial cookie. Acked-by: Paul Millar Target: master, 0.18
-
- 13 Jun, 2019 2 commits
-
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Motivation: To build more complicated test cases without mocking all world a timple file system suitable test is required. Modification: Adjust local file system based vfs implementation https://github.com/kofemann/simple-nfs/blob/master/src/main/java/org/dcache/simplenfs/LocalFileSystem.java to work with jimfs (Google's file system for testing). Update existing PseudoFsTest to to use DummyVFS. Result: More complicated tests can be created. Acked-by: Paul Millar Target: master
-
- 10 Jun, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: NFSv4.2 have introduced some new operations including LAYOUTSTATS and LAYOUTERROR. Tough those operations are not supported, we return error illegal. Modification: Add dummy OperationLAYOUTERROR and OperationLAYOUTSTATS that returns NFSERR_NOTSUPP. Result: client receives NFSERR_NOTSUPP instead of NFSERR_ILLEGAL. First building block to add support for LAYOUTSTATS and LAYOUTERROR. Acked-by: Paul Millar Target: master
-
- 07 Jun, 2019 3 commits
-
-
Tigran Mkrtchyan authored
ensure, that readdir behind last entry returns empty directory listing. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Motivation: latest version of hamcrest test suite to write more sophisticated test cases. Modification: Update dependency in the pom file. Update test to avoid usage of deprecated API. Result: up-to-date test infrastructure to enhance tests. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
up-to-date version with java11 support Acked-by: Paul Millar Target: master
-
- 10 May, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Acked-by: Paul Millar Target: master
-
- 24 Apr, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: - Benchmark IP matcher that used for processed of any NFS request. - enhancing JMH knowledge Modification: Add benchmark for ip address matcher. Result: Benchmark (client) (template) Mode Cnt Score Error Units IpMatcherBenchmark.benchmark 192.168.1.1 192.168.1.1 thrpt 25 156536643.166 ± 3114973.363 ops/s IpMatcherBenchmark.benchmark 192.168.1.1 192.168.1.0/24 thrpt 25 154687994.062 ± 5716679.866 ops/s IpMatcherBenchmark.benchmark 192.168.1.1 fe80::9cef:10f5:f2ae:1aa1 thrpt 25 269111251.883 ± 6734146.251 ops/s IpMatcherBenchmark.benchmark 192.168.5.1 192.168.1.1 thrpt 25 158110904.503 ± 1620381.437 ops/s IpMatcherBenchmark.benchmark 192.168.5.1 192.168.1.0/24 thrpt 25 158561449.487 ± 1235704.889 ops/s IpMatcherB...
-
- 18 Apr, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: When layout stats are reported, then consumer misses client information, which is not the expected behavior. Modification: Update LayoutDriver#acceptLayoutReturnData to accept compound context. Result: Request information is available when layout stats are processed. Acked-by: Paul Millar Target: master
-
- 11 Apr, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: make FsExport usable for collections Modification: add hashCode and equals to FsExport and InerAddressMatcher Result: FsExport can be used in java collections. Acked-by: Albert Rossi Target: master
-
- 05 Apr, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: traditionally, nfs exports table is implemented as a export file. However, nfs server interested only in the content of the export table. Moreover, Some deployments,for instance openstack shared file system interface, may require more dynamic ways to manipulate export table, which is not optimal for file based implementation. Modification: Introduce ExportTable interface that provide API required by nfs server without exposing implementation details. Update methods to more generic names. Update codebase to refer to ExportTable instead of ExportFile. The ExportTable class is implementing ExportTable interface. Result: multiple implementation of ExportTable is possible without nfs code changes. Acked-by: Albert Rossi Target: master
-
- 27 Mar, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: as we must match most specific match first, the entries like lab-*wn*.site.com lab-cwn01.site.com 10.1.2.2 10.1.2.0/24 must be sorted as 10.1.2.2 lab-cwn01.site.com 10.1.2.0/24 lab-*wn*.site.com Modification: ensure that IP address has a higher priority then full host name. Update comparator to always return desired order (IOW, no need for reverse sorting). Result: The export entries evaluated in desired order. Acked-by: Paul Millar Target: master, 0.18, 0.17
-
- 08 Mar, 2019 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: - performance benchmarking - getting in touch with JMH Modification: Add throughput test for lock manager. Introduce a dedicated profile to run benchmark tests. ``` $ mvn clean verify -Pbenchmark .... Result "org.dcache.nfs.benchmarks.ConcurrentLockManagerBenchmark.benchmarkConcurrentLocking": 1574556.068 ±(99.9%) 98632.233 ops/s [Average] (min, avg, max) = (1078256.296, 1574556.068, 1735655.142), stdev = 131671.209 CI (99.9%): [1475923.835, 1673188.301] (assumes normal distribution) $ ``` Result: automated performance monitoring can be integrated into CI. Acked-by: Albert Rossi Target: master
-
- 08 Feb, 2019 1 commit
-
-
Tigran Mkrtchyan authored
fixes: 7aee3bc6 Motivation: as FATTR4_RDATTR_ERROR must be used in a context of READDIR operation only, the VERIFY/NVERIFY operations must check that FATTR4_RDATTR_ERROR is not set. Modification: check for invalid attribute prior VERIFY/NFERIVY operations start to compare attributes. Result: better spec compliance. Acked-by: Paul Millar Target: master, 0.18
-