<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Is it reasonable to expect to share DL_DIR between multiple builds?<br>
<br>
That is, are downloads properly locked so that multiple concurrent
downloads of the same file won't collide? And if so, are they NFS
safe locks?<br>
<br>
Or must each build download it's own copies of every component?<br>
<br>
I ask because our, (Palm), branch has been, but it's a bit of a
nuisance to pick a suitable locking mechanism that is both
functional and performant.<br>
<ul>
<li>Flock/lockf aren't reliably supported in heterogeneous
environments.</li>
<li>The old lockfiles don't work over NFS. Lock directories
apparently do, but trying to clean these up after interruptions
or failures is a losing battle so if we do use these, we end up
with orphan locks periodically.</li>
<li>With NFS as a possibility, we can't assume any kernel local
IPC mechanism, so sysV ipc is out.</li>
<li>It seems like a pretty huge overhead to try to create any sort
of zeroconf overhead.</li>
</ul>
<p>Our solution so far has been to use NFS lock directories for
multiple machine builds and flock/lockf for single machine
builds. This mostly works, though it's not ideal, and it's
significantly faster than downloading/copying all of the component
source multiple times even over local mirrors.<br>
</p>
--rich<br>
</body>
</html>