Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DAT102 Introduction to Amazon DynamoDB - AWS re: Invent 2012


Published on

Learn why Amazon DynamoDB is the fastest-growing service in AWS history. DynamoDB is a NoSQL database service that lets you scale from one to hundreds of thousands of I/Os per second (and beyond) with the push of a button. It's designed to give you scalability and high performance with minimal administration and enables you to scale your app while keeping costs down. You also learn about the service’s design principles, its history, and about how some of our customers are using DynamoDB in their applications.

  • Be the first to comment

DAT102 Introduction to Amazon DynamoDB - AWS re: Invent 2012

  1. 1. Amazon DynamoDB is the result of everything we’ve learned from building large-scale, non-relational databases for andbuilding highly scalable and reliable cloud computing services at AWS.”
  2. 2. You Choose: To get the database• Memory performance you want:• CPU • Throughput rate• Hard drive specs • Latency• Software • …• …
  3. 3. You Choose: To get the database• Memory performance you want:• CPU • Throughput rate• Hard drive specs • Latency• Software • …• …
  4. 4. Tell us the performance you wantLet us handle the rest
  5. 5. Every DynamoDB table has:• Provisioned write capacity• Provisioned read capacity• No limit on storage
  6. 6. Change your throughput capacity as neededPay for throughput capacity and storage used
  7. 7. Change scale with the click of a button
  8. 8. When you run your own database, you need to:• Try and forecast the scale you need• React quickly if you get it wrong• Invest time and money learning how to scale your database
  9. 9. Benefits:• Safety; you know you’re readyRisks:• Buy too much capacity• Lose development resources to scale testing/planning• Do more work than necessary
  10. 10. Benefits• Lower costs if all goes wellRisks:• Last-minute scaling emergencies• How does your database behave at an unexpected scale?
  11. 11. CapacityActual traffic
  12. 12. Unused Capacity 76% 24%
  13. 13. Capacity we needed before DynamoDB Capacity we can provision with DynamoDBActual traffic
  14. 14. One simple command to move your data from Amazon DynamoDB intoAmazon Redshift: copy redshift_table from dynamodb://dynamo_table‘ credentials aws_access_key_id=****;aws_secret_access_key=****;
  15. 15.
  16. 16. Nexmo API connects Apps with Our clients use Nexmo API in many any phone in the world different waysNexmo API connects : • Two factor Developers authentications• two-way, inbound via long OTT & • P2P number (16 countries) communication• from the cloud via a direct to carrier model• to over 1000 mobile networks. Text based Entreprise communications between tenant and owners using long numbers. Send high Resellers volumes of SMS to Nexmo direct links
  17. 17. • 1 billion records in the last 6 months• 5+ millions new records per day• Help Desk: Most common question “What’s the status of my message?”• Requirements: – Make all messages searchable in near real time – Search response time agnostic of volume – Search by • Message ID • Account ID, Recipient Number and Date
  18. 18. App Messaging Platform HUB #1 HUB #n GW #1 GW #2 GW #n-1 GW #n Carrier LogTailer Handset“Aggregates” DynamoDB SimpleDB MySQL
  19. 19. • Message includes: – One record for the submitted message (MT) – One record for the intermediate delivery receipt (DR) – One record for the final delivery receipt (FS)• 5 “tables” (MT,MO,DR,FS,REJ) using 50 domains each to improve writes throughput• Search by ID: no brainer
  20. 20. 50 threads MT1 searching Account, … matching records Reconstruct 4 DR Message result2 Search set matching GW_ID GW_ID Search FS3 matching GW_ID GW_ID
  21. 21. • 5 “tables” (MT,MO,DR,FS,REJ)• 1 “index” – Hash: [account id] + “::”+ [phone number] – Range: date• Select id from MT where accountId=? And phoneNumber=? And date=?Condition rangeKeyCondition = newCondition().withComparisonOperator(ComparisonOperator.BETWEEN.toString()).withAttributeValueList(new AttributeValue().withN(d1),new AttributeValue().withN(d2));QueryRequest mtRequest = new QueryRequest().withTableName(MT_INDEX) .withHashKeyValue(new AttributeValue().withS(accountId+"::"+msisdn)) .withRangeKeyCondition(rangeKeyCondition); QueryResult mtResult = getAWSDynamoDBClient().query(mtRequest);
  22. 22. MT 2 Search matching ID ID1 Search Index matching IDs Reconstruct INDEX,DATE 5 DR Message result 3 Search set matching GW_ID GW_ID FS 4 Search matching GW_ID GW_ID
  23. 23. Text your emailto 12675465AWSto get extranexmo credits
  24. 24. Need:Generate lightning alertnotifications, in proximity to theuser’s location, on a mobiledevice.
  25. 25. Provider Product Throughput Engineering Cost of per Instance Cost OwnershipMicrosoft SQL Server 2008 Medium Low HighMySQL MySQL Medium High* High*Earth Networks In Memory Quadtree High High MediumAmazon Mem-Cache High Medium MediumAmazon DynamoDB High Low Low * Not currently supported by Earth Networks
  26. 26. Need:Better cost control that followswith lightning pattern and usagepatterns.
  27. 27.