IO Log File Statistics

To get statistically meaningful results from the benchmark it is necessary that the I/O log file contains enough operations of each type. To get an overview on how well your I/O log file represents each operation, you can use the class LogStatistics in com.db4o.bench.logging.statistics. Given the file name of an I/O log file LogStatistics will produce an HTML file that contains a table with statistics:

            
Count % Bytes %
Reads 664'631 30.64 52'214'278 70.83
Writes 360'001 16.6 21'508'576 29.17
Seeks 1'024'632 47.23
Syncs 120'005 5.53
Total 2'169'269 73'722'854
Average byte count per read: 78 Average byte count per write: 59
This is the output of LogStatistics when run with the file generated by CrudApplication with 30k objects, which is the default setting for the Ant target run.benchmark.medium. Typically sync operations are much rarer than seek operations. If you look at the source of CrudApplication you'll see that extra commit calls when deleting objects. These were inserted to to get a higher sync count in the I/O log. It's possible that you also have to "tune" your application in a similar way to get good statistics.