Comparisons

Database Benchmark

Some people created a nice well made GUI based tool for comparing Database performance and size. We have used this tool for performance tuning of VelocityDB. The benchmarks are limited in scope but for what they test, they are very good and compare 11 different Databases. VelocityDB performs nicely in comparison. Only the mysterious STSdb performs better in some cases but STSdb has a very limited API, isn't distributable, and cannot directly store classes with relations to other classes. The entire benchmarks lacks such cases and also doesn't test large objects. Databases part of the benchmark include: STSdb, Acess 2007, db4objects, Firebird, H2, MS SQL Server, MySQL, Oracle BerkeleyDB, Perst, and SQLite. The official benchmark version 1.1 did not include VelocityDB. You can test VelocityDB with this tool using the VelocityDB implementation of the benchmark tests. The benchmark version 1.1 did not use .net 4  but you can make it work using .Net 4.0. VelocityDB files: VelocityDbBenchmarkCompressed.zip . The C# source code for the entire tool can be downloaded from here. The benchmark shown here is with RecordCount being 250,000.

Adds [RecordCount] number of records to the database. The database must give an opportunity to directly access the added records by their index - 0, 1, 2, ... RecordCount - 1 thereafter.

Speed (rec/s)

As you can see, VelocityDB is way faster than these other Database Systems. Click here to see the results for the other tests part of the 3rd party test suite

Database Size (MB)

Here a smaller bar is better! Not only is VelocityDB faster, it does it producing smaller databases, especially when compression is enabled.

Couchbase is claiming better performance than MongoDB so we were curious how well it performed with Database Benchmark version 3.0.0

This time we used an Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, a Asus VivoPC M32CD ($650) with an external 2.5" USB 3.1 SSD ($40) for the databases. 10 million Tick records were added as values to a map sorted by a Type long key. Updated source for the VelocityDB part of the test can be found here. If slowness doesn't scare you away from text based Json databases then data size might. In this case Couchbase data created is 2038 MB, compare with same data LZ4 compressed with VelocityDB: 342 MB and uncompressed: 545 MB.

Speed (rec/s)

A user asked for a comparison with Eloquera. We implemented the first two tests using Eloquera - we can implement the remaining ones on request

This time we used a faster PC for the benchmark, a ZT Affinity 7644Mi Desktop PC , and 5 million records were added. The src for the Eloquera implementation is here

Speed (rec/s)

Database Size (MB)

Enumerate the records in order that they are added with the Append() method.

Speed (rec/s)


All of these Database systems adds the same type of Tick object , see class definition below.

public class Tick
{
  public string Symbol { get; set; }
  public DateTime Timestamp { get; set; }
  public double Bid { get; set; }
  public double Ask { get; set; }
  public long Volume { get; set; }
  public string Exchange { get; set; }
}

MongoDB Comparison

The official benchmark has changed and they added MongoDB. This test adds 1 million 8 byte keys with 32 byte values sorted by key.

Speed (rec/s)

Database Size (MB)

New Benchmark 2.0 Comparisons

The benchmark group have added a few new databases to their benchmark. We tried a few of these January 28 - 30, 2014 and updated February 15, 2014 with VelocityDB 3.5 (improved). The following two charts are for 3,000,000 records

Speed (rec/s)

Database Size (MB)

A few more databases. The following two charts are for 1,000,000 records

Speed (rec/s)

Database Size (MB)

Computing the Kevin Bacon Numbers

This is a sample that shows a problem that is easy to solve with VelocityDB but may be difficult to do using only SQL and in any case, the VelocityDB solution will be faster!

Other database vendors use this same example, see HPCC Systems and Neo4J

It is a problem that is supposed to be assigned to graph databases but as you can see it is very easily handled by VelocityDB and the performance is unbeatable. We look forward to seeing numbers to compare with.

See our sample page for further info.