![Page 1: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/1.jpg)
Cache SketchesUsing Bloom Filters and Web Caching Against Slow Load Times
Felix Gessert, Florian Bücklers{fg,fb}@baqend.com
@baqendcom
![Page 2: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/2.jpg)
Who we are
Research Project since 2010
Backend-as-a-Service Startup since 2014
Felix Gessert, Florian Bücklers
![Page 3: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/3.jpg)
Cache Sketch:Research Approach
Using Web Caching in Applications
Introduction Main Part Conclusions
Web Performance:State of the Art
![Page 4: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/4.jpg)
Presentationis loading
![Page 5: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/5.jpg)
Average: 9,3s
Why performance matters
Loading…
-1% Revenue
100 ms
![Page 6: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/6.jpg)
Average: 9,3s
Why performance matters
Loading…
-1% Revenue
-9% Visitors
400 ms
![Page 7: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/7.jpg)
Average: 9,3s
Why performance matters
Loading…
-1% Revenue
-9% Visitors
500 ms
-20% Traffic
![Page 8: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/8.jpg)
Average: 9,3s
Why performance matters
Loading…
-1% Revenue
-9% Visitors
-20% Traffic
1s
-7% Conversions
![Page 9: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/9.jpg)
An Average WebsiteSome Statistics
http://httparchive.org/
![Page 10: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/10.jpg)
An Average WebsiteSome Statistics
http://httparchive.org/
![Page 11: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/11.jpg)
An Average WebsiteSome Statistics
http://httparchive.org/
![Page 12: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/12.jpg)
If perceived speed is such an important factor
...what causes slow page load times?
![Page 13: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/13.jpg)
The ProblemThree Bottlenecks: Latency, Backend & Frontend
High Latency
Backend
Frontend
![Page 14: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/14.jpg)
Achieve a fast render of the page by:◦ Reducing the critical resources needed
◦ Reducing the critical bytes which must be transferred
◦ Loading JS, CSS and HTML templates asynchronously
◦ Rendering the page progressively
◦ Minifying & Concatenating CSS, JS and images
Frontend PerformanceBreak-down of the Critical Rendering Path
Google Developers, Web Fundamentals https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp.
![Page 15: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/15.jpg)
Well known problem & good tooling:◦ Optimizing CSS (postcss)
◦ Concatenating CSS and JS (processhtml)
◦ Minification and Compression (cssmin, UglifyJS, Google Closure, imagemin)
◦ Inline the critical CSS (addyosmani/critical)
◦ Hash assets to make them cacheable (gulp-rev-all)
Frontend PerformanceTools to improve your page load
![Page 16: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/16.jpg)
Network PerformanceBreak down of a single resource load
DNS Lookup
◦ Every domain has its own DNS lookup
Initial connection
◦ TCP makes a three way handshake 2 roundtrips
◦ SSL connections have a more complex handshake +2 roundtrips
Time to First Byte
◦ Depends heavily on the distance between client and the backend
◦ Includes the time the backend needs to render the page
Session lookups, Database Queries, Template rendering …
Content Download
◦ Files have a high transfer time on new connections, since the initial congestion window is small many roundtrips
![Page 17: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/17.jpg)
Network PerformanceCommon Tuning Knobs
Persistent connections, if possible HTTP/2
Avoid redirects
Explicit caching headers (no heuristic caching)
Content Delivery Networks◦ To reduce the distance between client and server
◦ To cache images, CSS, JS
◦ To terminate SSL early and optimized
Single Page Apps:◦ Small initial page that loads additional parts asynchronously
◦ Cacheable HTML templates + load dynamic data
◦ Only update sections of the page during navigation
![Page 18: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/18.jpg)
Network Latency: Impact
I. Grigorik, High performance browser networking. O’Reilly Media, 2013.
![Page 19: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/19.jpg)
Network Latency: Impact
I. Grigorik, High performance browser networking. O’Reilly Media, 2013.
2× Bandwidth = Same Load Time
½ Latency ≈ ½ Load Time
![Page 20: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/20.jpg)
Backend PerformanceScaling your backend
Horizontally scalable databases (e.g. “NoSQL”)
◦ Replication
◦ Sharding
◦ Failover
Load Balancer Application Server Database
Stateless session handling
Minimize shared state
Efficient Code & IO
Load Balancing
Auto-scaling
Failover
![Page 21: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/21.jpg)
Polaris:
Idea: construct graph that captures real read/write and write/write JS/CSS dependencies
Improvement: ~30% depending on RTT and bandwidth
Limitation: cannot deal with non-determinism, requires server to generate a dependency graph for each client view
Research ApproachesTwo Examples
Netravali, Ravi, James Mickens, et al. Polaris: Faster Page Loads Using Fine-grained Dependency Tracking, NSDI 2016
![Page 22: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/22.jpg)
Shandian:
Idea: Proxy is more powerful than browser, especially mobile evaluate page on proxy
Improvement: ~50% for slow Android device
Limitation: needs modified browser, only useful for slow devices
Research ApproachesTwo Examples
Wang, Xiao Sophia, Arvind Krishnamurthy, and David Wetherall. "Speeding up Web Page Loads with Shandian." NSDI 2016.
Client Proxy
![Page 23: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/23.jpg)
Shandian:
Idea: Proxy is more powerful than browser especially mobile -> evaluate page on proxy
Improvement: ~50% for slow Android device
Limitation: needs modified browser, only useful for slow devices
Other Research ApproachesTwo Examples
Wang, Xiao Sophia, Arvind Krishnamurthy, and David Wetherall. "Speeding up Web Page Loads with Shandian." NSDI 2016.
Client Proxy
Many good ideas in current research,but:
o Only applicable to very few use caseso Mostly require modified browserso Small performance improvements
![Page 24: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/24.jpg)
Performance: State of the ArtSummarized
Frontend Latency Backend
• Doable with theright set of bestpractices
• Good supportthrough build tools
• Caching and CDNs help, but a considerable effortand only for staticcontent
• Many frameworksand platforms
• Horizontal scalability is verydifficult
![Page 25: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/25.jpg)
Performance: State of the ArtSummarized
Frontend Latency Backend
• Easy with the rightset of bestpractices
• Good supportthrough build tools
• Caching and CDNs help, but large effort and only forstatic content
• Many frameworksand platforms
• Horizontal scalability is verydifficult
Good Resources:
Good Tools:
https://developers.google.com/web/fundamentals/performance/?hl=en
https://www.udacity.com/course/website-performance-optimization--ud884chimera.labs.oreilly.com/books/1230000000545
shop.oreilly.com/product/0636920033578.do
https://developers.google.com/speed/pagespeed/
https://gtmetrix.com http://www.webpagetest.org/
![Page 26: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/26.jpg)
Performance: State of the ArtSummarized
Frontend Latency Backend
• Doable with theright set of bestpractices
• Good supportthrough build tools
• Caching and CDNs help, but large effort and only forstatic content
• Many frameworksand platforms
• Horizontal scalability is verydifficult
How to cache & scaledynamic content?
![Page 27: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/27.jpg)
Cache Sketch:Research Approach
Using Web Caching in Applications
Introduction Main Part Conclusions
Web Performance:State of the Art
![Page 28: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/28.jpg)
Goal: Low-Latency for Dynamic ContentBy Serving Data from Ubiquitous Web Caches
Low Latency
Less Processing
![Page 29: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/29.jpg)
In a nutshellProblem: changes cause stale data
![Page 30: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/30.jpg)
StaleData
In a nutshellProblem: changes cause stale data
![Page 31: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/31.jpg)
In a nutshellSolution: Proactively Revalidate Data
Cache Sketch (Bloom filter)
updateIs still fresh? 1 0 11 0 0 10 1 1
![Page 32: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/32.jpg)
InnovationSolution: Proactively Revalidate Data
F. Gessert, F. Bücklers, und N. Ritter, „ORESTES: a ScalableDatabase-as-a-Service Architecture for Low Latency“, in CloudDB 2014, 2014.
F. Gessert und F. Bücklers, „ORESTES: ein System für horizontal skalierbaren Zugriff auf Cloud-Datenbanken“, in Informatiktage 2013, 2013.
F. Gessert, S. Friedrich, W. Wingerath, M. Schaarschmidt, und N. Ritter, „Towards a Scalable and Unified REST API for Cloud Data Stores“, in 44. Jahrestagung der GI, Bd. 232, S. 723–734.
F. Gessert, M. Schaarschmidt, W. Wingerath, S. Friedrich, und N. Ritter, „The Cache Sketch: Revisiting Expiration-basedCaching in the Age of Cloud Data Management“, in BTW 2015.
F. Gessert und F. Bücklers, Performanz- und Reaktivitätssteigerung von OODBMS vermittels der Web-Caching-Hierarchie. Bachelorarbeit, 2010.
F. Gessert und F. Bücklers, Kohärentes Web-Caching von Datenbankobjekten im Cloud Computing. Masterarbeit 2012.
W. Wingerath, S. Friedrich, und F. Gessert, „Who Watches theWatchmen? On the Lack of Validation in NoSQLBenchmarking“, in BTW 2015.
M. Schaarschmidt, F. Gessert, und N. Ritter, „TowardsAutomated Polyglot Persistence“, in BTW 2015.
S. Friedrich, W. Wingerath, F. Gessert, und N. Ritter, „NoSQLOLTP Benchmarking: A Survey“, in 44. Jahrestagung der Gesellschaft für Informatik, 2014, Bd. 232, S. 693–704.
F. Gessert, „Skalierbare NoSQL- und Cloud-Datenbanken in Forschung und Praxis“, BTW 2015
![Page 33: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/33.jpg)
Client
Expiration-based Caches
Invalidation-based Caches
RequestPath
Server/DB
CacheHits
Browser Caches, Forward Proxies, ISP Caches
Content Delivery Networks, Reverse Proxies
Expiration-based Caches:
An object x is considered fresh for TTLx seconds
The server assigns TTLs for each object
Invalidation-based Caches:
Expose object eviction operation to the server
Web Caching ConceptsInvalidation- and expiration-based caches
![Page 34: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/34.jpg)
Classic Web Caching: ExampleA tiny image resizer
Desktop
Mobile
Tablet
Resized once
Cached and delivered many
times
![Page 35: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/35.jpg)
The „Bloom filter principle“:“Wherever a list or set is used, and space is at a premium, consider using a Bloom filter if the effect of false positives can be mitigated.”
Bloom filter ConceptsCompact Probabilistic Sets
A. Broder und M. Mitzenmacher, „Network applications of bloom filters: A survey“, Internet Mathematics, 2004.
def insert(obj):
for each position in hashes(obj):
bits[position] = 1
def contains(obj):
for each position in hashes(obj):
if bits[position] == 0:
return false;
return true
Bit array of length m
k independent hash functions
insert(obj): add to set
contains(obj):
Always returns true if the element was inserted
Might return true even though it was not inserted (false positive)
![Page 36: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/36.jpg)
Bloom filter ConceptsVisualized
1 m0 0 0 0 0 0 0 0 0 0
Empty Bloom Filter
1 m0 1 0 0 0 0 1 0 0 1
Insert x
h1h2 h3
x
1 m1 1 0 0 1 0 1 0 1 1
Insert y
h1h2 h3
y
Query x
1 m1 1 0 0 1 0 1 0 1 1
h1h2 h3
=1?n y
contained
![Page 37: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/37.jpg)
Bloom filter ConceptsFalse Positives
False-Positive for z
Query z
1 m1 1 0 0 1 0 1 0 1 1
h1h2h3
=1?y
contained
𝑓 ≈ 1 − 𝑒− ln 2 𝑘≈ 0.6185
𝑚𝑛
The false positive rate depends on thebits m and the inserted elements n:
For f=1% the required bits per element are: 2.081 ln(1/0.01) = 9.5
![Page 38: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/38.jpg)
Our Bloom filterOpen Source Implementation
![Page 39: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/39.jpg)
Our Bloom filtersExample: Redis-backed Counting Bloom Filter
Redis-backed Bloom filters:◦ Can be shared by many servers
◦ Highly efficient through Redis‘ bitwise operations
◦ Tunable persistence
Counting Bloom Filters: use counters instead of bits toalso allow removals◦ Stores the materialized Bloom filter for fast retrieval
0 2 0 0 1 0 3 0 1 1COUNTS
0 1 0 0 1 0 1 0 1 1BITS
![Page 40: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/40.jpg)
Idea: use standard HTTP Caching for query results andrecords
Problems:
The Cache Sketch approachCaching Dynamic Data
How to keep thebrowser cache up-to-date?
How to automaticallycache dynamic data in a CDN?
When is data cacheable andfor how long approximately?
![Page 41: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/41.jpg)
Orestes ArchitectureInfrastructure
Content-Delivery-Network
Polyglot Storage
![Page 42: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/42.jpg)
Orestes ArchitectureInfrastructure
Content-Delivery-Network
Backend-as-a-Service Middleware:Caching, Transactions, Schemas, Invalidation Detection, …
![Page 43: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/43.jpg)
Orestes ArchitectureInfrastructure
Content-Delivery-Network
Standard HTTP Caching
![Page 44: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/44.jpg)
Orestes ArchitectureInfrastructure
Content-Delivery-Network
Unified REST API
![Page 45: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/45.jpg)
Baqend ArchitectureInfrastructure
Content-Delivery-Network
IaaS-Cloud
on
CDN
on
![Page 46: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/46.jpg)
Client
Expiration-based Caches
Invalidation-based Caches
RequestPath
Server/DB
CacheHits
Browser Caches, Forward Proxies, ISP Caches
Content Delivery Networks, Reverse Proxies
atconnect
Periodicevery Δ
seconds
attransaction
begin
2 31
Invalidations,Records
Needs Invalidation?
Needs Revalidation?
The Cache Sketch approachLetting the client handle cache coherence
Stal
enes
s-M
inim
izat
ion
Inva
lidat
ion-
Min
imiz
atio
n
Client Cache Sketch
10101010 Bloom filter
Server Cache Sketch
10201040
10101010
Counting Bloom Filter
Non-expiredRecord Keys
Report Expirations and Writes
![Page 47: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/47.jpg)
The End to End Path of RequestsThe Caching Hierarchy
Client- (Browser-)
CacheProxy
CachesISP
CachesCDN
CachesReverse-
Proxy Cache
Miss
Hit
MissMiss
MissMiss
Orestes
DB.posts.get(id) JavaScript
![Page 48: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/48.jpg)
The End to End Path of RequestsThe Caching Hierarchy
Client- (Browser-)
CacheProxy
CachesISP
CachesCDN
CachesReverse-
Proxy Cache
Miss
Hit
MissMiss
MissMiss
Orestes
GET /db/posts/{id} HTTP
![Page 49: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/49.jpg)
The End to End Path of RequestsThe Caching Hierarchy
Client- (Browser-)
CacheProxy
CachesISP
CachesCDN
CachesReverse-
Proxy Cache
Miss
Hit
MissMiss
MissMiss
Orestes
Cache-Hit: Return ObjectCache-Miss or Revalidation: Forward Request
![Page 50: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/50.jpg)
The End to End Path of RequestsThe Caching Hierarchy
Client- (Browser-)
CacheProxy
CachesISP
CachesCDN
CachesReverse-
Proxy Cache
Miss
Hit
MissMiss
MissMiss
Orestes
Return record from DB with caching TTL
![Page 51: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/51.jpg)
The End to End Path of RequestsThe Caching Hierarchy
Client- (Browser-)
CacheProxy
CachesISP
CachesCDN
CachesReverse-
Proxy Cache
Miss
Hit
MissMiss
MissMiss
Orestes
Updated byCache Sketch
Updated by theserver
![Page 52: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/52.jpg)
Let ct be the client Cache Sketch generated at time t, containing the key keyx of every record x that was written before it expired in all caches, i.e. every x for which holds:
The Client Cache Sketch
∃ 𝑟(𝑥, 𝑡𝑟 , 𝑇𝑇𝐿), 𝑤 𝑥, 𝑡𝑤 ∶ 𝑡𝑟 + 𝑇𝑇𝐿 > 𝑡 > 𝑡𝑤 > 𝑡𝑟
k hash functions m Bloom filter bits
1 0 0 1 1 0 1 1h1
hk
...keyfind(key)
Client Cache Sketch
Bits = 1
no
yes
GET request
Revalidation
Cache
Hit
Miss
key
key
![Page 53: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/53.jpg)
Let ct be the client Cache Sketch generated at time t, containing the key keyx of every record x that was written before it expired in all caches, i.e. every x for which holds:
The Client Cache Sketch
∃ 𝑟(𝑥, 𝑡𝑟 , 𝑇𝑇𝐿), 𝑤 𝑥, 𝑡𝑤 ∶ 𝑡𝑟 + 𝑇𝑇𝐿 > 𝑡 > 𝑡𝑤 > 𝑡𝑟
k hash functions m Bloom filter bits
1 0 0 1 1 0 1 1h1
hk
...keyfind(key)
Client Cache Sketch
Bits = 1
no
yes
GET request
Revalidation
Cache
Hit
Miss
key
key
JavaScript Bloomfilter:~100 LOCs~1M lookups per second
![Page 54: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/54.jpg)
Let ct be the client Cache Sketch generated at time t, containing the key keyx of every record x that was written before it expired in all caches, i.e. every x for which holds:
The Client Cache Sketch
∃ 𝑟(𝑥, 𝑡𝑟 , 𝑇𝑇𝐿), 𝑤 𝑥, 𝑡𝑤 ∶ 𝑡𝑟 + 𝑇𝑇𝐿 > 𝑡 > 𝑡𝑤 > 𝑡𝑟
k hash functions m Bloom filter bits
1 0 0 1 1 0 1 1h1
hk
...keyfind(key)
Client Cache Sketch
Bits = 1
no
yes
GET request
Revalidation
Cache
Hit
Miss
key
key
JavaScript Bloomfilter:~100 LOCs~1M lookups per second
Guarantee: data is never stale for morethan the age of the Cache Sketch
![Page 55: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/55.jpg)
The Server Cache SketchScalable Implementation
Performance > 200k ops per second:
Add keyx if x unexpiredand write occured
Remove x from Blomfilter when expired
Load Bloom filter
![Page 56: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/56.jpg)
1 4 020
BrowserCache
CDN
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 57: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/57.jpg)
1 4 020
BrowserCache
CDN
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 58: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/58.jpg)
1 4 020
BrowserCache
CDN
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 59: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/59.jpg)
1 4 020
purge(obj)
hashB(oid)hashA(oid)
3
BrowserCache
CDN
1
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 60: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/60.jpg)
1 4 020 31 1 110Flat(Counting Bloomfilter)
BrowserCache
CDN
1
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 61: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/61.jpg)
1 4 020 31 1 110
hashB(oid)hashA(oid)
BrowserCache
CDN
1
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 62: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/62.jpg)
1 4 020 31 1 110
hashB(oid)hashA(oid)
BrowserCache
CDN
1
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 63: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/63.jpg)
1 4 020 31 1 110
BrowserCache
CDN
1
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 64: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/64.jpg)
1 4 020
hashB(oid)hashA(oid)
1 1 110
BrowserCache
CDN
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
![Page 65: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/65.jpg)
1 4 020
hashB(oid)hashA(oid)
1 1 110
BrowserCache
CDN
Clients load the Cache Sketch at connection
Every non-stale cached record can be reusedwithout degraded consistency
Faster Page Loads1
𝑓 ≈ 1 − 𝑒−𝑘𝑛𝑚
𝑘
𝑘 = ln 2 ⋅ (𝑛
𝑚)
False-Positive
Rate:
Hash-
Functions:
With 20.000 distinct updates and 5% error rate: 11 KByte
![Page 66: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/66.jpg)
Solution: Δ-Bounded Staleness◦ Clients refresh the Cache Sketch so its age never exceeds Δ
→ Consistency guarantee: Δ-atomicity
Faster CRUD Performance
ClientExpiration-
based CachesInvalidation-based Caches
Server
Cache Sketch ctQuery Cache Sketch
fresh records
Revalidate record & Refresh Cache Sketch
Cache Hits
Fresh record & new Cache Sketch
-time t
-time t + Δ
2
![Page 67: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/67.jpg)
Scalable ACID Transcations
Solution: Conflict-Avoidant Optimistic Transactions◦ Cache Sketch fetched with transaction begin
◦ Cached reads → Shorter transaction duration → less aborts
3
Cache
Cache
Cache
REST-Server
REST-Server
REST-Server
DB
Coordinator
Client
Begin Transaction
Bloom Filter1
validation 4
5Writes (Public)
Read all
prevent conflicting
validations
Committed OR aborted + stale objects
Commit: readset versions & writeset3
Reads
2
![Page 68: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/68.jpg)
Scalable ACID Transcations
Novelty: ACID transactions on sharded DBs like MongoDB
Current Work: DESY and dCache building a scalable namespacefor their file system on this
3
With Caching
WithoutCaching
![Page 69: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/69.jpg)
Problem: if TTL ≫ time to next write, then it iscontained in Cache Sketch unnecessarily long
TTL Estimator: finds „best“ TTL
Trade-Off:
TTL EstimationDetermining the best TTL and cacheability
Longer TTLsShorter TTLs
• Higher cache-hit rates• more invalidations
• less invalidations• less stale reads
![Page 70: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/70.jpg)
Idea: 1. Estimate average time to next write 𝐸[𝑇𝑤] for each record
2. Weight 𝐸[𝑇𝑤] using the cache miss rate
TTL EstimationDetermining the best TTL
Client
Server
Reads
Misses
λm: Miss Rateλw: Write Rateco
llect TTL
per recordλm λw
Caches
Writes~ Poisson
TTL Estimator
Objective:-maximize Cache Hits-minimize Purges-minimize Stale Reads-bound Cache Sketch false positive rate
Writes~ Poisson
![Page 71: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/71.jpg)
Idea: 1. Estimate average time to next write 𝐸[𝑇𝑤] for each record
2. Weight 𝐸[𝑇𝑤] using the cache miss rate
TTL EstimationDetermining the best TTL
Client
Server
Reads
Misses
λm: Miss Rateλw: Write Rateco
llect TTL
per recordλm λw
Caches
Writes~ Poisson
TTL Estimator
Objective:-maximize Cache Hits-minimize Purges-minimize Stale Reads-bound Cache Sketch false positive rate
Writes~ Poisson
Good TTLs small Bloom filter
TTL < TTLmin no caching of write-heavy objects
![Page 72: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/72.jpg)
End-to-End Example
BrowserBrowser
CacheCDN
Cache ServerClient Cache
SketchServer Cache
Sketchb={x2}
t = {(x2, t2),(x3, t3),(x1, t1)}
b= INITIALIZE c={(x2,t2),(x3,t3)} c={(x1,t1)
b={x2}
CONNECT
bt0={x2}READ x3
QUERY
x3
RESPONSE
falseGET
x3
RESPONSE
x3
QUERY
x2
RESPONSE
true
READ x2
REVALIDATE
x2c={(x3,t3)}
RESPONSE
x2,t4c={(x2,t4),(x3,t3)} c={(x2,t4)}
REPORT READ
x2,t4b={x2}
t = {(x2, t4),(x3, t3),(x1, t1)}
RESPONSE
inv=true
WRITE x1PUT
x1=vREPORT WRITE
x1
RESPONSE
ok
INVALIDATE
x1
b={x1,x2}t = {(x2, t4),
(x3, t3),(x1, t1)}
![Page 73: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/73.jpg)
ConsistencyWhat are the guarantees?
Consistency Level How
Δ-atomicity (staleness neverexceeds Δ seconds)
Controlled by age of Cache Sketch
Montonic Writes Guaranteed by database
Read-Your-Writes andMontonic Reads
Cache written data and mostrecent versions
Always
Opt-in
Causal Consistency If timestamp older thanCache Sketch it is given, elserevalidate
Strong Consistency(Linearizability)
Explicit Revalidation (Cache Miss)
![Page 74: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/74.jpg)
Performance
CDN
Northern California
Client MongoDBOrestes
Ireland
Setup:
Page load times with cachedinitialization (simulation):
Average Latency for YCSB Workloads A and B (real):
With Facebook‘scache hit rate: >2,5x improvement
95% Read 5% Writes5x latencyimprovement
![Page 75: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/75.jpg)
Cache all GET requests
Authorize the user on protected resources
Validate & renew session tokens of users
Varnish and FastlyWhat we do on the edge
Reject rate limited users
Handle CORS pre-flight requests
Access-Control-*
Collect access logs & report failures
![Page 76: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/76.jpg)
The Cache SketchSummary
Static Data Mutable Objects
{"id":"/db/Todo/b5d9bef9-
6c1f-46a5-…","version":1,"acl":null,"listId":"7b92c069-…","name":"Test","activities":[],"active":true,"done":false
}
Queries/Aggregates
max-age=31557600
Immutability ideal forstatic web caching:
Cache Sketch for browsercache, proxies and ISP caches
Invalidations for CDNs andreverse proxies
SELECT TOP 4,WHERE tag=„x“
How to do this?
![Page 77: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/77.jpg)
Continuous Query MatchingGeneralizing the Cache Sketch to query results
Main challenge: when to invalidate?
◦ Objects: for every update and delete
◦ Queries: as soon as the query result changes
How to detect query resultchanges in real-time?
![Page 78: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/78.jpg)
Query CachingExample
Add, Change, Remove all entail an invalidation andaddition to the cache sketch
SELECT * FROM postsWHERE tags CONTAINS 'b'
Query Predicate P
Cached Query Result Q
𝑜𝑏𝑗1 ∈ 𝐐
𝑜𝑏𝑗2 ∈ 𝐐
Change
Add
Remove
![Page 79: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/79.jpg)
InvaliDB
Architecture
ORESTES
CreateUpdateDelete
Pub-Sub Pub-Sub
1 0 11 0 0 10 1 1
Fresh Cache Sketch
ContinuousQueries
(Websockets)
Fresh Caches
Polyglot Views
Felix Gessert, Michael Schaarschmidt, Wolfram Wingerath, Steffen Friedrich, Norbert Ritter: Quaestor: Scalable and Fresh Query Caching on the Web's Infrastructure. Under Submission.
![Page 80: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/80.jpg)
InvaliDBMatching on Apache Storm
Apache Storm:• „Hadoop of Real-Time“• Low-Latency Stream
Processing• Custom Java-based
Topologies
InvaliDB goals: • Scalability, Elasticity,
Low latency, Fault-tolerance
![Page 81: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/81.jpg)
Latency mostly < 15ms, scales linearly w.r.t. number ofservers and number of tables
Query Matching PerformanceLatency of detecting invalidations
![Page 82: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/82.jpg)
Setting: query results can either be represented asreferences (id-list) or full results (object-lists)
Approach: Cost-based decision model that weighsexpected round-trips vs expected invalidations
Ongoing Research: Reinforcement learning of decisions
Learning RepresentationsDetermining Optimal TTLs and Cacheability
[𝑖𝑑1, 𝑖𝑑2, 𝑖𝑑3]
Object-ListsId-Lists
[ 𝑖𝑑: 1, 𝑣𝑎𝑙: ′𝑎′ , 𝑖𝑑: 2, 𝑣𝑎𝑙: ′𝑏′ ,{𝑖𝑑: 3, 𝑣𝑎𝑙: ′𝑐′}]
Less Invalidations Less Round-Trips
![Page 83: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/83.jpg)
What is the impact of query caching?
![Page 84: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/84.jpg)
What is the impact of query caching?
Insight:
Query Caching = Real-Time Apps
![Page 85: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/85.jpg)
![Page 86: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/86.jpg)
Continuous QueriesComplementing Cached Queries
Same streaming architecture can similarly notify thebrowser about query result changes
Application Pattern:
Streaming Layer
Insert… tag=‘b‘ …
Subscribetag=‘b‘
Orestes
Initial Page Load using CachedQueries
Critical data declarativelyspecified and proactivelypushed via websockets
![Page 87: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/87.jpg)
Continuous Query APISubscribing to database updates
var stream = DB.News.find().stream();stream.on("add", onNews);stream.on("remove", onRemove);
![Page 88: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/88.jpg)
Orestes: DB-independent Backend-as-a-Service
Cache Sketch Approach:◦ Client decides when to revalidate, server invalidates CDN
◦ Cache Sketch = Bloom filter of stale IDs
◦ Compatible with end-to-end ACID transactions
◦ Query change detection in real-time
Summary
0 1 0 0 10 1 0 1 11 1 0 0 00 0 0 1 1
HTTP Caching
Cache Sketch
TTLEstimation
RT Query Matching
Invali-dations
![Page 89: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/89.jpg)
Cache Sketch:Research Approach
Using Web Caching in Applications
Introduction Main Part Conclusions
Web Performance:State of the Art
![Page 90: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/90.jpg)
Team: Felix Gessert, Florian Bücklers, Hannes Kuhlmann, Malte Lauenroth, Michael Schaarschmidt
19. August 2014
Orestes Caching Technology as a Backend-as-a-Service
![Page 91: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/91.jpg)
Page-Load TimesWhat impact does caching have in practice?
0,7
s 1,8
s 2,8
s 3,6
s
3,4
s
CALIFORNIEN
0,5
s
1,8
s 2,9
s
1,5
s
1,3
s
FRANKFURT
0,6
s
3,0
s
7,2
s
5,0
s 5,7
s
SYDNEY
0,5
s
2,4
s
4,0
s
5,7
s
4,7
s
TOKYO
![Page 92: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/92.jpg)
Live Demo: Using Caching in Practice
![Page 93: Vorlesung Web Services und Workflows · Network Performance Break down of a single resource load DNS Lookup Every domain has its own DNS lookup Initial connection TCP makes a three](https://reader035.vdocuments.net/reader035/viewer/2022071018/5fd2449b1c6a6928f45de792/html5/thumbnails/93.jpg)
Ziel mit InnoRampUp
Want to try Baqend?
Download Community
Edition
Free Baqend Cloud
instance