[Zope] Large user populations and local roles

Stuart 'Zen' Bishop zen@cs.rmit.edu.au
Sun, 2 Apr 2000 09:48:46 +1000 (EST)


On Sat, 1 Apr 2000, Dennis Nichols wrote:

> 3. I can't imagine what will happen when I want to add a local role and 
> Zope tries to build a SELECT list of 100,000 names and sends it to my browser!

What will happen is you will patch your Zope installation, and then
submit it to the collector for DC to make standard :-)

I have around 3000 at the moment, and the default install still works
provided I only do security management on my LAN rather than via modem.

> So am I crazy to use Zope for something this size, or just too dense to see 
> the obvious solution?

I think you are on the right track. Just avoid calling the
getUserNames or getUsers methods in whatever acl_users folder you
end up using. Also trace the source code in getUser to ensure that 
getUserNames is not called at any stage - I can confirm GUF handles
this nicely provided you implement the userExists hook, but I don't
know about the others. 

For > 10,000 users, I would actually suggest patching or subclassing
whatever userfolder you go for and making the getUserNames and getUsers
methods throw an exception or at least log a message, so you can
eliminate all the calls. These methods need to remain in the API as plenty
of people need them, but are just unworkable on large sites.

-- 
 ___
   //     Zen (alias Stuart Bishop)     Work: zen@cs.rmit.edu.au
  // E N  Senior Systems Alchemist      Play: zen@shangri-la.dropbear.id.au
 //__     Computer Science, RMIT 	 WWW: http://www.cs.rmit.edu.au/~zen