Forum .LRN Q&A: 15MB read from disk!

Posted by Tom Lodge on
Installed dotlrn on debian with openACS4.6 and postgres 7.2.1 - found it to be extremely slow, on a reasonably high spec machine. On running vmstat - saw that it's because at one stage it pulls 15MB off the disk in one request.
It seems to happen whenever the #dotlrn-fs.Lecture-Notes# portlet is used in a class, or #fs-portlet.pretty_name# - even if there are no added files. Checking what is going on in postgres, it seems that there is a particularly huge select statement, which, even if run of the pgsql command line, takes an age to return a (very small) table of results:

select fs_objects.object_id,, fs_objects.live_revision, fs_objects.type, to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified,fs_objects.content_size, fs_objects.url, fs_objects.sort_key, fs_objects.file_upload_name, etc etc etc etc etc etc etc.

Is this a statement that that has been optimised in some way for oracle?

2: Re: 15MB read from disk! (response to 1)
Posted by Peter Marklund on
This may not be related to the slowness, but if you are using the OpenACS 4.6 branch you should also be using the dotlrn 1.0 branch. However, given the message keys in your post (the syntax is #package_key.message_key#) you must be on dotlrn head.
3: Re: 15MB read from disk! (response to 1)
Posted by Don Baccus on
I've fixed the main file storage query to avoid the use of this view, apparently it's still used by this portlet.

I'll look into it.

Note, though, that due to our effort being pointed towards an OpenACS 4.6.2+dotLRN 1.0 release, any such fix will appear in the dotLRN 1.0 branch, not HEAD.  We'll be merging the two in a couple of weeks but until then you're best off with those two branches.