5. 6/14/2017 Slides not intended for redistribution 5
Performance
Scalability Performance Security Availability & Data Protection Manageability Development Platform
6. 6/14/2017 6
DynamoDB: consistent performance at scale
ConsistentSingle-Digit Millisecond Latency
Requests(millions)
Latency(milliseconds)
Scalability Performance Security Availability & Data Protection Manageability Development Platform
“We cannot afford to waste a 3 or 4 milliseconds...”
“We have 20ms to make a decision… ”
9. 6/14/2017 9
Scalability Performance Security Availability & Data Protection Manageability Development Platform
DynamoDB
Cache
Your Applications
Traditional side cache
DynamoDB
Your Applications
Caching made simple
DynamoDB Accelerator
12. 6/14/2017 12
Scalability Performance Security Availability & Data Protection Manageability Development Platform
• Fully managed, highly available: handles all software management,
fault tolerant, replication across multi-AZs within a region
• DynamoDB API compatible: seamlessly caches DynamoDB API
calls, no application re-writes required
• Write-through: DAX handles caching for writes
• Flexible: Configure DAX for one table or many
• Scalable: scales-out to any workload with up to 10 read replicas
• Manageability: fully integrated AWS service: Amazon CloudWatch,
Tagging for DynamoDB, AWS Console
• Security: Amazon VPC, AWS IAM, AWS CloudTrail, AWS
Organizations
Features
DynamoDB Accelerator (DAX)
DynamoDB
Your Applications
DynamoDB Accelerator
13. 6/14/2017 Slides not intended for redistribution 13
Fully managed, highly available
14. 6/14/2017 14
High Availability
Scalability Performance Security Availability & Data Protection Manageability Development Platform
AMAZON VPC
EC2
App
DAX
SDK
DynamoDB
AZ1
AZ2
AZ3
16. 6/14/2017 16
Q: How easy is it to add in-
memory caching with DAX?
A: Comment out the this code
and add this code
Scalability Performance Security Availability & Data Protection Manageability Development Platform
17. 6/14/2017 17
• Read APIs: GetItem, BatchGetItem, Query, Scan
• Modify APIs: PutItem, UpdateItem, DeleteItem,
BatchWriteItem
• Control plane APIs: Not supported (CreateTable,
DeleteTable, etc.)
Scalability Performance Security Availability & Data Protection Manageability Development Platform
DAX is API compatible with DynamoDB
18. 6/14/2017 18
Scalability Performance Security Availability & Data Protection Manageability Development Platform
DAX has two caches
Query Cache {query, scan}
Item Cache {GetItem, PutItem}
key, value
query text, result set
32. 6/14/2017 Slides not intended for redistribution 32
VPC subnet IAM
AWS
CloudTrail
Scalability Performance Security Availability & Data Protection Manageability Development Platform
34. 6/14/2017 34
Scalability Performance Security Availability & Data Protection Manageability Development Platform
Customer Use Case #1: Unpredictable spikes
35. 6/14/2017 35
Scalability Performance Security Availability & Data Protection Manageability Development Platform
Customer Use Case #2: Speed
Response times in microseconds
37. 6/14/2017 37
Scalability Performance Security Availability & Data Protection Manageability Development Platform
Repeated users are now being handled by the DAX cache
without making the more expensive (in both latency & cost)
call to DynamoDB
Shahar Kobrinky
VP of Architecture and Scale at Eyeview
“
”
DAX represents a big opportunity for us to
find the optimal balance between infrastructure cost and
system performance
Brandon O’Brien
Principle Software Engineer, Expedia, Inc.
“
”
DynamoDB Accelerator (DAX)
38. 6/14/2017 38
Scalability Performance Security Availability & Data Protection Manageability Development Platform
The AWS team has taken a best-practice architectural
pattern and turned it into something repeatable and
valuable for its customers
Glenn Nethercutt
Chief Architect, Genesys
“
”
The ability to supercharge DynamoDB with DAX is
something we're looking forward to
Pat Malatack
General Manager of Twilio Messaging
“
”
DynamoDB Accelerator (DAX)
39. 6/14/2017 39
Scalability Performance Security Availability & Data Protection Manageability Development Platform
Key Benefits
• Fast performance: Microseconds response
times at millions of reads/sec from single DAX
cluster
• Ease of use: DynamoDB API compatible -
requires minimal code change for existing
applications, simplifying developer experience
• Lower costs: Reduce provisioned read
capacity for DynamoDB tables for tables with
hot data
DynamoDB Accelerator (DAX) In public preview
DynamoDB
Your Applications
DynamoDB Accelerator
41. 6/14/2017 41
Q: Does DAX invalidate query result sets
with puts, updates or deletes?
Scenario:
t=1 Query
t=2 PutItem
t=3 Query
Scalability Performance Security Availability & Data Protection Manageability Development Platform
42. 6/14/2017 42
Q: How does DAX handle strongly
consistent reads?
Scalability Performance Security Availability & Data Protection Manageability Development Platform
43. 6/14/2017 43
Q: Does DAX help with hot-keys?
Scalability Performance Security Availability & Data Protection Manageability Development Platform
44. 6/14/2017 44
Q: What are the current limitations?
• Java SDK only
• Regions: N. Virginia, Oregon, Ireland
• Instances: r3
Scalability Performance Security Availability & Data Protection Manageability Development Platform
* How many took a Lyft to the conference today?
* Tell story of my Lyft driver
But more and more even traditional industries – farm machinery, banking, healthcare. ALL also have these needs
Earlier this morning, Werner called DynamoDB *the* default DB for serverless – b/c of high scale, consistent low latency, global scale.
Yesterday’s millisecond is today’s microsecond
We noticed a common pattern.
They walked us through steps involved: choice of cache, new APIs, new data structures, re-write my whole app, hydrate cache, manage, scale, HA, etc.
So we asked ourselves
What if DynamoDB could just give customers a “Ludicrous Mode” for performance?
Give them in-memory performance for highly-accessed data?
What if customers didn’t have to change their code? What if we could have them just point to a new DynamoDB endpoint?
What if we could manage the cache for them? Nodes, HA, etc.
All with the same DynamoDB API…