For the target release, we need to re-organize GLOBALS used by Moodle a bit. If I'm not forgetting anything they are:
The objective should be that every global should contain EXCLUSIVELY its own data, no data belonging to another variable. So all the user (session!) related info should go to USER and all the course related info should go to COURSE.
This'll have at least two benefits:
- Organization. Every variable in its place.
- Caching. CFG can be cached globally (memcached..) and USER can be cached at session level. This are at least two less queries per page.