PNFS Implementation Issues
From Linux NFS
(Difference between revisions)
Line 2: | Line 2: | ||
* 2007/12/20: bhalevy: nfs4_setup_nfs4_program preps the global nfs_version4 structure. should be per server. | * 2007/12/20: bhalevy: nfs4_setup_nfs4_program preps the global nfs_version4 structure. should be per server. | ||
+ | |||
+ | * '''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) |
Revision as of 23:46, 24 January 2008
- NFSv4.1 Slot table implementation - Need to optimize the implementation for finding the lowest slot in the slot table implementation (nfs4_find_slot()).
- 2007/12/20: bhalevy: nfs4_setup_nfs4_program preps the global nfs_version4 structure. should be per server.
- 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)