Recent updates to AWS' managed NoSQL database, Amazon DynamoDB, rev up performance, but a table replication feature may force some companies to switch gears.
Over the past 18 months, AWS has added three DynamoDB features to address issues with availability zones, performance and backups. Some enterprises will quickly tap into the benefits of these updates, such as increased speed and reliability, but for others, they're more of a luxury than a necessity.
Global Tables adds availability, with a caveat
Previously, DynamoDB automatically replicated tables across multiple availability zones (AZs), but not across multiple AWS regions. With Global Tables, introduced in November 2017, developers can create tables with global access, and select two or more regions as hosts.
"Global Tables are now a no-brainer if you either want to get your data closer to your customers or guard against a region failure in AWS," said Erik Peterson, CEO and co-founder at CloudZero, a cloud and serverless monitoring company that partners with AWS. "Before, you would have to create a Lambda function that listens to a DynamoDB stream and configure it to replicate the data."
Global Tables comes with a catch, however. Developers must plan for cross-region replication at the start of the deployment process -- not when they determine it's necessary for a product to reach a global user base.
Chris MoyerVP of technology, ACI Information Group
"When we release a new product, we don't know if it's going to go anywhere," said Chris Moyer, vice president of technology at ACI Information Group and a TechTarget contributor. "Why start with Global Tables from the beginning when it's going to cost three times the price and you have no idea if the product is going to take off?"
While some enterprises with large data sets and flexibility will take advantage of this DynamoDB feature, those that run existing tables in production might balk at the inability to retroactively add cross-region support.
"It's somewhat easier if you can take your application offline and manually migrate your data over, but if you can't, you are going to have to implement custom code in your application to migrate the data during runtime," Peterson said. "This is definitely going to make migrations tricky for a lot of customers."
AWS likely will expand the service to enable multi-region distribution during or after deployment, Moyer said.
Back, back, back it up
Backups are integral to data protection and security with NoSQL databases, but the time-consuming process can wear down even the most seasoned IT pros. A Backup and Restore DynamoDB feature, generally available in August 2018, helps eliminate this headache as it enables the table backup process to happen in seconds rather than hours, according to AWS.
"I think Backup and Restore is the most significant to most people," Peterson said. "Before it was a somewhat difficult and clunky process that consumed read capacity when running."
With Backup and Restore, an enterprise can also revert its database to a specific point in time, from a point-in-time-recovery to the 35 preceding days, which can prevent major issues if IT detects an error early enough.
"The fact that there's no performance impact or interruption of database service as the backup data is being written ... means you don't have to take frequent snapshots to improve your data restore time," said Lyn Robison, a Gartner analyst.
DAX boosts speed for large data volumes
Another DynamoDB addition in the past year, DynamoDB Accelerator (DAX), is a managed in-memory cache that can handle millions of requests per second and still maintain high performance.
"If you've got data that you need to make available across the globe for people to read very quickly, DAX is actually quite effective for that," Robison said.
But for organizations that don't have massive amounts of data in DynamoDB, the difference in speed might not be all that noticeable.
"DynamoDB isn't where our performance issues are right now, so DAX wasn't really something we worried about," Moyer said. "If you're processing genomes or anything in the healthcare industry with tons of data, or maybe even Statcast for MLB [and are] pulling in that much in terms of data and records, I'm sure that difference was huge."
DAX hasn't been a good fit for CloudZero because the majority of the company's application is built on Lambda, and it doesn't make sense to run an in-memory cache on short-lived functions with limited resources, Peterson said. Instead, he said he'd like to see AWS bake DAX's caching capabilities directly into DynamoDB to benefit AWS Lambda and serverless customers.
"It won't eliminate the round-trip time for retrieving data, but it would speed up common queries and scans on data that doesn't change very often," he said.