Your SlideShare is downloading. ×
  • Like
idea: talk about the Active Cache
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

idea: talk about the Active Cache

  • 214 views
Published

 

Published in Self Improvement , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
214
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Talk about ``Active’’ Cache by qrtt1
  • 2. Cache For Web Application http request Web Handler Layer
  • 3. Cache For Web Application http request Web Handler Layer Business Logic Layer call some business logic
  • 4. Cache For Web Application http request Web Handler Layer Business Logic Layer call some business logic very very busy business
  • 5. Cache For Web Application http request Web Handler Layer Business Logic Layer call some business logic http response compose the final output very very busy business
  • 6. Cache For Web Application http request Web Handler Layer Business Logic Layer call some business logic http response compose the final output very very busy business HOW LONG DOES THE CLIENT WAIT ?
  • 7. Cache For Web Application http request Web Handler Layer Business Logic Layer http response Cache Layer using cacheto reduce the response time
  • 8. Cache For Web Application http request Web Handler Layer Business Logic Layer http response Cache Layer HIT CACHE
  • 9. Cache For Web Application http request Web Handler Layer Business Logic Layer http response Cache Layer MISS CACHE RUN IN THE BUSY WAY
  • 10. Cache Layer Cache is passive and only update by caller if foo in cache: return cache[foo] data = business(xyz) cache[foo] = data return data
  • 11. Cache Layer Data in the cache is expired eventually. if foo in cache: return cache[foo] else: # users should wait the data available do_something_with_expired..
  • 12. ACTIVECache Layer Data in the cache is updated eventually. if foo in active_cache: return active_cache[foo] data = active_cache({business, xyz}) return data
  • 13. The difference Passive Cache put the data into cache update the data by caller Active Cache put the update-method into cache update the data by itself
  • 14. ACTIVE Cache Layer POC in Java Web Using AspectJ add the advice to Business Logic foo(a, b, c, ...) Business Logic Layer waving the aop-advice learning how to invoke the business logic by keep the information about {instance, method signature and arguments} HIT CACHE forever refresh cache data automatically
  • 15. Active Cache Problem How does the key to define ? key(args of method) or ... How to design the cache updater and scheduler ? How to migrate the broken deserialiazation from the class definition change ?
  • 16. Cache Key Building methodA(userInfo, str, int, otherPojo) what does a user see ? it depends on userInfo how does data filter or sort ? key = signauure_ + args[0] + args[1] + args[...] => signature_UserInfo@a3a4a3a5_3_{a:3,b:3_} wtf, the key is so bad and never hit cache
  • 17. Cache Key Building => signature_UserInfo@a3a4a3a5_3_{a:3,b:3_} sometimes toString() is a not good enough treat userInfo as userInfo.getGroupId() or convert to the better key format => signature_1234567890_3_{a:3,b:3_}
  • 18. Cache Key Building => signature_OtherClass@a3a4a3a5_3_{a:3,b:3_} sometimes OtherClass no available getters the useful information is assigned by its constructor using AOP & mix-in ActiveCacheToString interface to provide alternative toString()
  • 19. Should I update it request from Http Client should not update request from Scheduler should update How to check the issue coming from ? check the stacktrace having javax.servlet.http.HttpServlet.service is request from Http Client.
  • 20. Handle the class definition change class definition changes will break everything when deserialization should change the cache storage pool, too DevOps should support to check the change happening