Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Redis on AWS

Redis on AWS

Presentation held in the seminar on "NotOnlySQL databases." Builds upon slides in the former presentation "Redis — memcached on steroids." Features challenges when deploying Redis on Amazon Web Services within the context of the Yahoo! Cloud Serving Benchmark.

Robert Lehmann

March 08, 2012
Tweet

More Decks by Robert Lehmann

Other Decks in Technology

Transcript

  1. a data structure server hash tables sets sorted sets Fundamental

    data structures for a fundamental API lists
  2. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß…
  3. hash tables user1234567890 field0: abc… field1: def… field2: ghi… field3:

    jkl… field4: mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… insert read update delete HMSET HMGET HMSET DEL RedisClient.java
  4. a data structure server hash tables sets sorted sets Fundamental

    data structures for a fundamental API lists
  5. The Harry Potter Approach WWVD What Would Voldemort Do 101

    @Override 102 public int scan(…) { 104 logger.warn( ⁞ "Voldemort does not support Scan semantics"); 105 return OK; 106 } db/voldemort/src/com/yahoo/ycsb/db/VoldemortClient.java
  6. user1 user2 user3 user5 user8 not that easy record name

    can be anything thus: position = hash(name)
  7. “I think the… problem is… believing that there can be

    “one true datastore”. Different technologies excel at different things. –– Weixi Yen
  8. “I think the… problem is… believing that there can be

    “one true datastore”. Different technologies excel at different things. –– Weixi Yen
  9. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB
  10. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB factory page size := 32 bytes
  11. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB factory page size := 32 bytes values must be swapped in their entirety, even for complex types
  12. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB factory page size := 32 bytes values must be swapped in their entirety, even for complex types = 32 pages 
  13. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB factory page size := 32 bytes values must be swapped in their entirety, even for complex types = 32 pages  vm-page-size et al
  14. user1234567890 field0: abc… field1: def… field2: ghi… field3: jkl… field4:

    mno… field5: pqr… field6: stu… field7: vwx… field8: yzä… field9: öüß… = 1 KB = 32 pages  50% performance hit