On 2005-05-29T11:51:27-0400, John Ruttenberg wrote: Content-Description: message body text > I have a benchmark program that demonstrates significant performace > degradation over time. Here is what this benchmark does: > > 1. Create a table with a primary integer key and a blob value. > 2. Populate the table with 1M rows. In all cases the blobs are strings > with random lengths between 1 and 1k bytes.
Does your random generator run in constant time? > 3. Loop foreer, making passes. A pass does 1M operations each of which > is randomly selected and can be either: > a. an insert of an existing row, chosen at random, or You mean an update? How do you select a random row? In particular is that a constant (in time) operation? > b. an assert of a new row as in 2. Not sure what that means. If you select a random number, then test for pre-existence of the row, then the chance of conflict with go up with time. > Here are plots of time for each pass on a modern linux machine (fc3, >3GHz > processor, ide drives), and a modern XP machine (similar hardware). You need to label the axis and include dimension. /Allan
signature.asc
Description: Digital signature