A Performance Comparison of Drivers for Amazon DynamoDB



The metrics in this article are from the most up-to-date drivers available as of August 2017.

In this article, we compare the performance of the CData JDBC Driver for Amazon DynamoDB to the same technology produced by another company (Competitor 1). We compared read performance, measuring the amount of time that it takes to query DynamoDB for data and process the result set in some way.

The test machine specifications are as follows:
Operating System: Windows 10
Processor: Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
Installed Memory (RAM): 6.00 GB
System type: 64-bit Operating System

Since the drivers are being compared side-by-side, the performance of the machine itself is relatively unimportant; what matters is how the drivers compare relative to one another.

The Data



In order to provide a reproducible comparison, we copied records from the sample restaurants dataset made publicly available by MongoDB, Inc. and stored the records in Amazon DynamoDB:

Table Number of Rows
restaurants 7,309

Queries



The main goal of this investigation was to compare the related performance of the drivers. We did this by running the same queries with each driver. To simulate actual processing of the data beyond simply reading from DynamoDB, we stored the values of each row in an array (that was replaced for each row). The exact queries tested are listed below:

  1. SELECT TOP 100 * FROM restaurants
  2. SELECT * FROM restaurants

Results



Below, you can see the performance of the various queries, based on the driver.

JDBC Drivers

Both companies compared produce a JDBC driver that provides a native experience with DynamoDB data in Java applications. The results of processing the query results in a simple Java application are below.

JDBC Query Times by Company (in seconds)
Query CData Software Competitor 1
1 (100 rows) 4.2 (+1,041.6%) 48.3
2 (~7,300 rows) 5.6 (+65,723.6%) 3,653.2

Note that the Competitor 1 driver takes a considerable amount of time to retrieve the relatively small number of rows for the entire table. It appears that the Competitor 1 driver retrieves one record at a time, which explains the slow performance. The CData driver makes use of the Amazon DynamoDB paging features to ensure that data is requested in a way that leverages the powerful processing of the DynamoDB service. As can be seen in the results, the CData driver is able to retrieve and process result sets significantly faster than the Competitor 1 driver, with the greatest difference occurring in the larger data sets.

Conclusion



The CData Software drivers regularly prove to be faster than the competitor's equivalent product, particularly when dealing with large data sets. We realize that speed is only one measurement, but the performance of our drivers is a strong indicator of the depth and technical prowess embedded in all of our drivers and data access technologies. Our developers have spent countless hours optimizing the performance in processing the results returned by the DynamoDB database to the point that the drivers seem to only be hindered by web traffic and server processing times.