|
From: | Jeff Darcy |
Subject: | [Gluster-devel] opendir/readdir helper |
Date: | Fri, 01 Feb 2013 08:27:22 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 |
So, let's think outside the box for a bit. What about an LD_PRELOAD helper? Believe me, I know all about the problems with LD_PRELOAD, but I still can't think of any reasonable use case that requires readdir to work across a fork (for example). The basic idea is that the LD_PRELOAD would catch calls to opendir/readdir and match them against paths matching GlusterFS volumes. If a match is found, then it would use libgfapi to serve the results, without any FUSE involvement and with massive prefetching goodness etc. Without a match, the helper would naturally fall back to the system functions.
I suspect that this approach would make listings on very large single directories many times faster than would ever be possible with FUSE. For deeply nested directories we'd need to add some more complexity so that we're not going through the whole connection-establishment path (including authentication etc.) for each directory separately, but that's all pretty well understood pain for pretty obvious gain.
Any other thoughts?
[Prev in Thread] | Current Thread | [Next in Thread] |