The Benchmarks

Query Execution Time

We measured query execution time for several combinations of fast and slow queries. To simulate fast queries we used the statement "select 1" and to simulate slow queries we used the statement "select sleep(1)"1

We categorized different combinations as follows.

Very light work load : 005 slow queries, 1000 fast queries
Light work load      : 010 slow queries, 1000 fast queries
Moderate work load   : 020 slow queries, 1000 fast queries
Heavy work load      : 050 slow queries, 1000 fast queries
Very heavy work load : 100 slow queries, 1000 fast queries

We tested a single blocking connection (the normal case with any Rails application for example) against a neverblock pool of 12 connections

Query Execution Time, Blocking Vs NeverBlock (lower is better)

Active Record Query Execution Time

For different more real life work loads

Active Record Connection Scaling With NeverBlock

Testing NeverBlock with different connection counts for slow and fast queries

Want to build a scalable rails application or scale you existing one?