PNFS Implementation Issues

From Linux NFS

(Difference between revisions)
Jump to: navigation, search
 
(5 intermediate revisions not shown)
Line 1: Line 1:
-
<ul>
+
* 2007/12/20 bhalevy: nfs4_setup_nfs4_program preps the global nfs_version4 structure. should be per server.
-
<li>'''NFSv4 File Layout Complex Layout Type'''-Current implementation sprinkles read.c and write.c with code to manage the read/write offset value. Need to work towards implementation that removes layout specific code from general code.[[ComplexFileLayout Original Patch|Original Patch]]</li>
+
-
<li> '''NFSv4.1 Slot table implementation''' - Need to optimize the implementation for finding the lowest slot in the slot table implementation (nfs4_find_slot()).</li>
+
* 2008-04-02 bhalevy: Implement layout stateid as per draft-21+
-
</ul>
+
* 2008-04-02 bhalevy: Implement pnfs-aware pags sync state model.
 +
[http://www.bhalevy.com/pnfs/pnfs-page-sync-model.pdf proposed model]
 +
 
 +
== Older Issues ==
 +
 
 +
* '''layoutget timing'''
 +
**a) If layoutget_on_open is set, the layout is sent in the same compound as OPEN
 +
**b) For reads, issue layoutget just before the read rpc is issued (using the offset and extent determined by the readahead code)
 +
**c) For write, add layoutget_post_write_coalesce and layoutget_pre_write_coalesce (or something)
 +
***Note 1: I think b and c need to happen in addition to a, since the server has the option of not returning a layout on open.  Of course, b and c are only executed if the layout extent doesn't already exist in the layout cache.
 +
***Note 2: It seems we might need to add a note that says if you need to retrieve the boundary size from the server, then you must do (a) and/or layoutget_pre_write_coalesce=true.
 +
***Note 3: Use a single layout driver interface op to determine layoutget timing (takes in flag and returns a boolean)
 +
 
 +
== Done ==
 +
 
 +
* '''NFSv4.1 Slot table implementation''' - Need to optimize the implementation for finding the lowest slot in the slot table implementation (nfs4_find_slot()).

Latest revision as of 16:26, 7 April 2008

  • 2007/12/20 bhalevy: nfs4_setup_nfs4_program preps the global nfs_version4 structure. should be per server.
  • 2008-04-02 bhalevy: Implement layout stateid as per draft-21+
  • 2008-04-02 bhalevy: Implement pnfs-aware pags sync state model.

proposed model

Older Issues

  • layoutget timing
    • a) If layoutget_on_open is set, the layout is sent in the same compound as OPEN
    • b) For reads, issue layoutget just before the read rpc is issued (using the offset and extent determined by the readahead code)
    • c) For write, add layoutget_post_write_coalesce and layoutget_pre_write_coalesce (or something)
      • Note 1: I think b and c need to happen in addition to a, since the server has the option of not returning a layout on open. Of course, b and c are only executed if the layout extent doesn't already exist in the layout cache.
      • Note 2: It seems we might need to add a note that says if you need to retrieve the boundary size from the server, then you must do (a) and/or layoutget_pre_write_coalesce=true.
      • Note 3: Use a single layout driver interface op to determine layoutget timing (takes in flag and returns a boolean)

Done

  • NFSv4.1 Slot table implementation - Need to optimize the implementation for finding the lowest slot in the slot table implementation (nfs4_find_slot()).
Personal tools