From: Sam H. <sh...@ma...> - 2004-10-21 18:22:41
|
On Oct 21, 2004, at 2:04 PM, John Jones wrote: > This is interesting data. I have a few thoughts/questions. > > Does anyone have an explanation as to why sql_single would beat sql? > Naively I would expect it to always be the other way around (or end up > in ties). More information in the database table should not end up > being faster. The way sql_single is implemented currently is to have separate tables for each course in a single database. (Tables are named like "$courseID\_$sqlTableName".) There isn't a difference in table size. > So, is there a difference in the indexing of information? I think that the "sql" courses did not have indexing enabled. If I'm right, the "sql versus sql_single" data would mostly reflect "non-indexed versus indexed" differences. > Also, were actions performed multiple times in each case to see if > variations in system load were having an impact? > > Finally, it would be good to test sql_single with a few thousand > students in it (and a dozen problem sets for each). The class you are > timing against can be normal sized, but imagine a large site or one > which has not removed information from their database for a few > semesters. With sql_single, this adds to the size of the database > tables. If the tables are not indexed optimally, it may not show > itself until there is a huge amount of data in the database, but can > then really slow down. > > John > > > Sam Hathaway wrote: > >> Here is some timing data from Mike: >> >>> All of this data was taken on the development machine: >>> devel.webwork.rochester.edu >>> >>> The quick summary is: >>> >>> >>> Summary: Taken from data attached. Time is in seconds and is real >>> time, not CPU time, >>> so it is only useful for long processes. "diff = " measures the >>> time from when the ContentGenerator >>> module is called to the time it returns. >>> >>> Adding class list of 160 students: >>> [Sat Oct 16 10:19:56 2004] 96404 1097936396 - >>> [/webwork2/test_gdbm/instructor/users/] [diff = 3.000000 gdbm] >>> [Sat Oct 16 10:36:13 2004] 96406 1097937373 - >>> [/webwork2/test_sql/instructor/users/] [diff = 6.000000 sql] >>> [Sat Oct 16 10:20:07 2004] 96403 1097936407 - >>> [/webwork2/test_single_sql/instructor/users/] [diff = 3.000000 >>> sql_single] >>> >>> >>> Assign set 1 (12 problems) to 160 users: >>> [Sat Oct 16 10:50:11 2004] 96403 1097938211 - >>> [/webwork2/test_gdbm/instructor/sets/1/users/] [diff = 154.000000 >>> gdbm] >>> [Sat Oct 16 10:47:11 2004] 96406 1097938031 - >>> [/webwork2/test_sql/instructor/sets/1/users/] [diff = 70.000000 sql] >>> [Sat Oct 16 10:51:38 2004] 96404 1097938298 - >>> [/webwork2/test_single_sql/instructor/sets/1/users/] [diff = >>> 61.000000 sql_single] >>> >>> Assign 160 users to sets 2, 3, and 4 (41 problems) (using >>> Instructor tools page) >>> [Sat Oct 16 10:50:11 2004] 96403 1097938211 - >>> [/webwork2/test_gdbm/instructor/sets/1/users/] [diff = 154.000000 >>> gdbm] >>> [Sat Oct 16 10:47:11 2004] 96406 1097938031 - >>> [/webwork2/test_sql/instructor/sets/1/users/] [diff = 70.000000 sql] >>> [Sat Oct 16 10:51:38 2004] 96404 1097938298 - >>> [/webwork2/test_single_sql/instructor/sets/1/users/] [diff = >>> 61.000000 sql_single] >>> >>> Assign set 5 (7 problems) to 160 students from the instructor tools >>> page: >>> [Sat Oct 16 14:57:39 2004] 96406 1097953059 - >>> [/webwork2/test_gdbm/instructor/assigner/] [diff = 89.000000 gdbm] >>> [Sat Oct 16 14:54:57 2004] 96404 1097952897 - >>> [/webwork2/test_sql/instructor/assigner/] [diff = 136.000000 sql] >>> [Sat Oct 16 15:17:46 2004] 96406 1097954266 - >>> [/webwork2/test_single_sql/instructor/assigner/] [diff = 65.000000 >>> sql_single] >>> >>> >>> score sets 0 to 5: >>> [Sat Oct 16 15:44:20 2004] 96406 1097955860 - >>> [/webwork2/test_gdbm/instructor/scoring/] [diff = 67.000000 gdbm] >>> [Sat Oct 16 15:46:00 2004] 96406 1097955960 - >>> [/webwork2/test_sql/instructor/scoring/] [diff = 76.000000 sql] >>> [Sat Oct 16 15:41:58 2004] 96403 1097955718 - >>> [/webwork2/test_single_sql/instructor/scoring/] [diff = 73.000000 >>> sql_single] >>> >>> view library (setDerivatives1, 30 problems displayMode=images) >>> [Sat Oct 16 15:50:43 2004] 96406 1097956243 - >>> [/webwork2/test_gdbm/instructor/setmaker/] [diff = 13.000000 gdbm] >>> [Sat Oct 16 15:51:45 2004] 8926 1097956305 - >>> [/webwork2/test_sql/instructor/setmaker/] [diff = 15.000000 sql] >>> [Sat Oct 16 15:52:19 2004] 8926 1097956339 - >>> [/webwork2/test_single_sql/instructor/setmaker/] [diff = 17.000000 >>> sql_single] >>> >>> ---- This last one is a bit puzzling. Why is single_sql slower than >>> sql? >>> >>> The other readings were all pretty short. It's clear that single_sql >>> speeds up assigning problems. >>> It wonder why it doesn't do even better than that. Why is the >>> library display slow in single_sql? >>> >>> In general single_sql is at least as good as the competition so >>> there are no deal stoppers. >>> >>> Take care, >>> Mike >>> >>> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on > ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give > us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > OpenWeBWorK-Devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/openwebwork-devel |