Next: Code and application environment
Up: Implementation
Previous: Performance testing
Performance tests are also a good way to discover some problems or errors that
may result from technologies' missing features. We have created a very simple mysql
database and inserted 100000000 (100 million) rows into one of its tables.
However the dumping process did not succeed. Instead of the backup file we have received
the following error: "java.lang.OutOfMemoryError". That shouldn't have happened, because Jdbdump
copies tables directly to a file record after record, not loading entire tables into memory.
It turned out that the guilty one was the Mysql server and JDBC driver. In our java application
we have used setFetchSize() method to make the program download data piece by piece, that means if you
write setFetchSize(100) and want to download data from a table consisting of 1000000 rows, it should
download only the first 100 rows at the beginning, and then the next 100 rows when they are accessed,
and so on. However, to our surprise it turned out that this feature is available only in MySQL 5.0.
So we had to implement it ourselves in our code.
Next: Code and application environment
Up: Implementation
Previous: Performance testing
Wiktor Kolodziej
2006-01-12