Forum OpenACS Development: Re: Some thoughts with respect to the permissions system

Posted by Don Baccus on
The win for only allowing one direct context_id for inheritance (rather than the inheritance tree we have today) is essentially just the average depth of the inheritance tree times the number of objects multiplied by the average number of objects that don't have inheritance turned off.

While I don't have any real-world stats for that, those are essentially linear relationships.  Given the indexes on the table, this means we have a log2(N) join cost on something that scales by some combination of linear factors.

So I don't think there's a LOT to gain in scalability from getting rid of the inheritance tree, moving to a simple inherit-from-one-object-only paradigm.

Of course in all our work with denormalized tables we're assuming that space is relatively unimportant.  With hobbyists being able to build servers with 4GB RAM thus far I think we're on pretty safe ground making this assumption.  I did worry about this a bit when I introduced the acs_object_party_privilege_map but as mentioned above, thus far for real sites it's been OK to eat the space.