Forum OpenACS Development: Re: Scalability of acs_objects and acs_object_context_index

I just started working a bit on this, I'll try to answer Don's questions in the next days.

Personally I don't find the permissioning code too slow. The system in question is huge and finely-grained permissioning is probably not a good idea - not for "coarse" things.

I was careful in avoiding to complain about speed of the permissioning system :) Here's the explain plan output


         94  recursive calls
        232  db block gets
     167407  consistent gets
       1401  physical reads

for this query:


SQL>   select site_node.url(node_id) as url, acs_object.name(object_id) as name                                                                                                                     
      from site_nodes                                                                                                                                                                               
      where parent_id = site_node.node_id('/')                                                                                                                                                      
      and object_id is not null                                                                                                                                                                     
      and acs_permission.permission_p(                                                                                                                                                              
          object_id,                                                                                                                                                                                
          acs.magic_object_id('the_public'),                                                                                                                                                        
          'read') = 't';

Timed statistics etc. all later

What I want is a careful consideration of how we can make central tables a bit (fair bit? a lot?) lighter - *without* breaking the past and that step by step.

Don, could you post this list of modifications to the kernel? There's no need for the list to be complete, we could put this onto a project page, try to order it by impact in complexity, time, and benefits, and start discussing the value of every modification.