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:

  1. Creating 1,000 objects with a basic Dublin Core metadata record
  2. Listing 1,000 objects
  3. Retrieving the RDF for the 1,000 objects

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:

Using Auto-Generated Identifiers

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