Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

To test the performance of MySQL and PostgreSQL persistence compared to LevelDB, I ran a series of tests against Fedora 4 with each backend configured.  The tests performed 200 batches, with each batch consisting of:

...

Each step was timed, and graphs of the times are shown below.  The test scripts are available to view/download.

Using Client-Supplied Identifiers (Single Container)

 Using client-supplied identifiers, placing all child objects in a single container, the performance of MySQL and LevelDB was very similar, and PostgreSQL performance was a little better:

  • Both All three had list and read times that were essentially flat as the number of child objects grew
  • Both had create times that steadily grew as the number of child objects grew
  • LevelDB and MySQL had roughly the same performance for creating objects, but PostgreSQL had better and more consistent performance
  • LevelDB and PostgreSQL both had Both increasingly erratic performance after around 45,000 child objects were created

Using Auto-Generated Identifiers

Using auto-generated identifiers, placing child objects in a 4-level hierarchy, the performance of MySQL and LevelDB was similar for create and read times, but significantly different for list operations:

  • Both All three had create and read times that were essentially flat as the number of child objects grew
  • Both All three had list times that grew as the number of child objects grew, but the PostgreSQL list operations grew more quickly, and the MySQL list operations grew much even more quickly