[comp.unix.wizards] Hard linking vs. Soft linking on BSD

gwyn@brl-smoke.ARPA (Doug Gwyn ) (12/20/87)

In article <939DBLCU@CUNYVM> DBLCU@CUNYVM.CUNY.EDU writes:
>I have a follow up question on using soft links. Is there a pronounced
>performance cost by using such a link, or is it negligible?

I have trouble imagining an application where the cost would be
noticeably more than some other approach that accomplishes the same
thing.  (I phrased this strangely, to acknowledge that the target
of a symlink might be a remote file system, for example.)

rwa@auvax.UUCP (Ross Alexander) (12/22/87)

In article <6892@brl-smoke.ARPA>, gwyn@brl-smoke.ARPA (Doug Gwyn ) writes:
> In article <939DBLCU@CUNYVM> DBLCU@CUNYVM.CUNY.EDU writes:
> >I have a follow up question on using soft links. Is there a pronounced
> >performance cost by using such a link, or is it negligible?
> I have trouble imagining an application where the cost would be
> noticeably more than some other approach that accomplishes the same
> thing.  (I phrased this strangely, to acknowledge that the target
> of a symlink might be a remote file system, for example.)

One of our machines here (auvax) used to have 3 ra81's, which had
three user-account filesystems named (strangely enough) /usr[123].
This worked quite nicely until the day came when I had to pull a
drive offline to test a new (and subsequently discovered, extremely
bug-prone) version of Ultrix.  This was forced on me by a change in
the size of the inodes, but I digress.  

Now my user community, in their infinite wisdom, had scads of code
containing pathnames of the form '/usr1/twit/bar/foo', et c., et c.,
(despite considerable flaming on my part well before this problem
arose).  Said pathnames being hardwired in, and not a few of 'em,
either, I really was puzzled for a while, at least several minutes,
as to how I could fake this thing without breaking every
user-designed programme in sight.  So I ended up repartitioning the
two remaining 'public' drives with /usr[ab] partitionas, with
/usr{1,3} being mapped into /usrb via symlinks in /, and /usr{,2}
mapped into /usra ditto.  

The upshot of this is almost every path in the system now has a symlink
in it.  Performance has not noticeably altered.  So much for the
symlink penalty ;-)

Ross Alexander @ Athabasca University,
alberta!auvax!rwa