summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2014-12-23 10:04:00 -0800
committerPranith Kumar Karampuri <pkarampu@redhat.com>2014-12-26 06:21:44 -0800
commit7926fe6f7df664bbe5e050a8e66240dd67155eec (patch)
tree6a63fc4b9804dcff58faf809a65dbff8b6f7c61c /README
parent79a5b2b991037cc1db5c71f7aa2a32ce712a22e9 (diff)
afr: stop encoding subvolume id in readdir d_off
The purpose of encoding d_off in AFR is to indicate the selected subvolume for the first readdir, and continue all further readdirs of the session on the same subvolume. This is required because, unlike files, dir d_offs are specific to the backend and cannot be re-used on another subvolume. The d_off transformation encodes the subvolume id and prevents such invalid use of d_offs on other servers. However, this approach could be quite wasteful of precious d_off bit-space. Unlike DHT, where server id can change from entry to entry and thus encoding the server id in the transformed d_off is necessary, we could take a slightly relaxed approach in AFR. The approach is to save the subvolume where the last readdir request was sent in the fd_ctx. This consumes constant space (i.e no per-entry cache), and serves the purpose of avoiding d_off "misuse" (i.e using d_off from one server on another). The compromise here is NFS resuming readdir from a non-0 cookie after an extended delay (either anonymous FD has been reclaimed, or server has restarted). In such cases a subvolume is picked freshly. To make this fresh picking more deterministic (i.e, to pick the same subvolume whenever possible, even after reboots), the function afr_hash_child (used by afr_read_subvol_select_by_policy) is modified to skip all dynamic inputs (i.e PID) for the case of directories. Change-Id: I46ad95feaeb21fb811b7e8d772866a646330c9d8 BUG: 1163161 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/9332 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions