Discover how a bimodal integration strategy can address the major data management challenges facing your organization today.
Get the Report →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:
- SELECT TOP 100 * FROM restaurants
- 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.