diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-03-26 21:51:29 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-03-26 21:51:29 +0000 |
commit | 2e13a585301585b62b6386e42b1f575453e05713 (patch) | |
tree | 1bfb19e3359799c1e937de6a99dd93b81d123868 /design-notes.html | |
parent | a0893a20e50af2deb56e6cfee0b455e310a5805a (diff) | |
download | fetchmail-2e13a585301585b62b6386e42b1f575453e05713.tar.gz fetchmail-2e13a585301585b62b6386e42b1f575453e05713.tar.bz2 fetchmail-2e13a585301585b62b6386e42b1f575453e05713.zip |
More on the concurrency problem.
svn path=/trunk/; revision=1731
Diffstat (limited to 'design-notes.html')
-rw-r--r-- | design-notes.html | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/design-notes.html b/design-notes.html index b6ddec2d..3b3f1e88 100644 --- a/design-notes.html +++ b/design-notes.html @@ -10,7 +10,7 @@ <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1998/03/06 04:17:44 $ +<td width="30%" align=right>$Date: 1998/03/26 21:51:29 $ </table> <HR> <H1 ALIGN=CENTER>Design Notes On Fetchmail</H1> @@ -190,8 +190,20 @@ worth the hideous complexity increase it would require in the code.<P> <H2>Multiple concurrent instances of fetchmail</H1> -What would be required for this is a per-host semaphore asserted -during each poll.<P> +Fetchmail locking is on a per-invoking-user because finer-grained +locks would be really hard to implement in a portable way. The +problem is that you don't want two fetchmails querying the same site +for the same remote user at the same time.<P> + +To handle this optimally, multiple fetchmails would have to associate +a system-wide semaphore with each active pair of a remote user and +host canonical address. A fetchmail would have to block until getting +this semaphore at the start of a query, and release it at the end of a +query.<P> + +This would be way too complicated to do just for an "it might be nice" +feature. Instead, you can run a single root fetchmail polling for +multiple users in either single-drop or multidrop mode.<P> The fundamental problem here is how an instance of fetchmail polling host foo can assert that it's doing so in a way visible to all other @@ -203,7 +215,7 @@ complicated and fragile, with a bunch of the standard problems (what happens if a fetchmail aborts before clearing its semaphore, and how do we recover reliably?)<P>. -I'm not satisfied that there's enough functional gain here to pay +I'm just not satisfied that there's enough functional gain here to pay for the large increase in complexity that adding these semaphores would entail.<P> @@ -463,7 +475,7 @@ all shaped the design in one way or another.<P> <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1998/03/06 04:17:44 $ +<td width="30%" align=right>$Date: 1998/03/26 21:51:29 $ </table> <P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS> |