On Thu, Jul 17, 2003 at 01:24:26PM -0500, J Cameron Cooper wrote:
With such a low number of concurrent users, you can probably get away with it server-wise, though your users may be subject to high latency.
Why high latency?
Well, I was just guessing that the user authentication lookups probably aren't a constant-time operation and scale at least linearly with the number of users, but I don't actually know this. It could be that it falls on the other side of the space/time tradeoff and will instead go nuts on memory.
I think it would be the latter. PersistentMapping is a subclass of UserDict, which is a small wrapper around the dict type. Accessing a dictionary item is O(1) according to the python Nutshell book. "nuts on memory" might not be a big deal either. User objects are pretty small. However, anything that loops over the items in the dictionary would be O(N), so any page that does this might become noticeable with REALLY large N. Some subjective fiddling at the python prompt suggests to me that 10,000 is not large enough for foo.items() to be noticeably slow unless you do so in a loop; but 100,000 is (it takes about a half second here.) What this means in practice is anybody's guess :-) I don't know if anything in Zope loops over the users, except of course the ZMI display code. All of which is a long way of saying that the ZMI alone might be enough to force you to use another UserFolder. You don't want to visit the Contents tab of a folder with 10,000 items in it! :-) -- Paul Winkler http://www.slinkp.com Look! Up in the sky! It's THE SLIPPERY JET! (random hero from isometric.spaceninja.com)