SlideShare a Scribd company logo
1 of 41
Insert company logo
UX/Frontend
Web Performance
Die effektivsten Techniken aus der Praxis
Erik Witt
Erik Witt 30.09.2016
Presentation
is loading
Average: 9,3s
Loading…
-1% Revenue
100 ms
-9% Visitors
400 ms500 ms
-20% Traffic
1s
-7% Conversions
Why performance matters
What should be the goal?
Delay User Perception
0 – 100 ms Instant
100 – 300 ms Small perceptible delay
300 – 1000 ms Machine is working
1+ s Mental context switch
10+ s Taks is abandoned
Stay under 1000 ms to
keep users attention
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
Concrete Example
A scalable webshop
at
Expectations:
• 2.7 Million Viewers
• 300.000 Visitors in
30 minutes
• 20.000 Requests
per second
If performance is so important for
Business Success
...what causes slow page load times?
State of the Art
The tree bottlenecks
Network
Backend
Frontend
CSS
Render Tree
Layout
Frontend Performance
The critical rendering path
Paint
Network
JavaScript
CSSOM
DOM
<!doctype html>
<title>Code Talks</title>
<link href=all.css rel=stylesheet />
<script src=app.css ></script>
<div>
<h1>Web Performance</h1>
</div>
div { color: green; }
h1 { padding: 10px; }
<script>
elem.style.width = "50px";
document.write("JS is awesome!");
</script>
HTML DOM
Execution
Frontend Performance
Render and parser blocking
Google Developers, Web Fundamentals
https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp
What to do:
• Inline critical CSS and JS above the fold
• CSS at the top, JS at the bottom
• Load non-critical CSS and JS
asynchronously
• Rendering the page progressively
• Minify, concatenate, compress and
cache CSS, JS and images
Frontend Performance
Tools to improve your page load
PageSpeed Insights
Profiling Minification & Compression
Inlining & Optimization
Google Closure
UglifyJs & cssmin
processhtml
Frontend Performance
Applied in the example
processhtml
Caching
565,9 KB
Size:
767 ms
Load time:
24
Requests:
Network Performance
Break 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 (1 with the new TCP Fast
Open)
• SSL connections have a more complex
handshake  +2 roundtrips (only 1 with
TLS False Start or Session Resumption)
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
Maximum 6 parallel connections
DNS Lookup Initial Connection
SSL Handshake
Time to First Byte Content Download
https://www.thinks.com/
20 ms0 53 ms 70 ms 90 ms36 ms
Network Performance
The average website
http://httparchive.org/
Transfer Size: 2480 KB
Total Requests: 104
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
Network Performance
Network latency impact
Network Performance
Network latency impact
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
2× Bandwidth = Same Load
Time
½ Latency ≈ ½ Load Time
Network Performance
Common 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
HTTP/2 Performance
Advantages:
• Server Push
• Header Compression
• Request Pipelining
• Multiplexing over 1 TCP
connection (no head-of-line
blocking)
Network Performance
Applied in the example
What we do:
• Heavy browser and CDN Caching
• Avoid Redirects (+ serve from CDN)
• Single Page App functionality
• Persistent Backend Connections
• Gzip Compression
• IP Anycasting to nearest POP
Backend Performance
Overview
• Horizontally scalable
databases (e.g. “NoSQL”)
• Replication
• Sharding
• Failover
Load Balancer Application Server Database
• Load Balancing
• Auto-scaling
• Failover
• Stateless session handling
• Minimize shared state
• Efficient Code & IO
Load Balancer Application Server Database
Content-Delivery-
Network
Polyglot Storage
Backend-as-a-Service Middleware:
Caching, Transactions, Schemas,
Invalidation Detection, …
Standard HTTP Caching
Unified REST API
Backend Performance
Applied in the example
Baqend Architecture
Infrastructure
Content-Delivery-
Network
IaaS-Cloud
on
CDN
on
Performance: State of the Art
Summarized
Frontend Latency Backend
• Doable with the right
set of best practices
• Good support
through build tools
• Caching and CDNs
help, but a
considerable effort
and only for static
content
• Many frameworks
and platforms
• Horizontal scalability
is very difficult
Performance: State of the Art
Summarized
Frontend Latency
Backend
• Easy with the right
set of best practices
• Good support
through build tools
• Caching and CDNs
help, but large effort
and only for static
content
• Many frameworks
and platforms
• Horizontal scalability
is very difficult
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/produc
t/0636920033578.do
https://developers.google.com/speed/
pagespeed/
https://gtmetrix.com http://www.webpagetest.org/
Accelerated Mobile Pages
Google‘s Approach for a Faster Web
How AMP works:
• Stripped down HTML + AMP tags
 rendered asynchronously by AMP runtime
• All CSS must be inlined
• All JS must be async
• Static sizes (e.g. iframes)  no repaints
• Cached in Google CDN, as long as it is crawled
the next time (no invalidation)
 only suited for static media, e.g. news
How to apply the same
techniques for any website?
https://www.ampproject.org
/docs/reference/spec.html
Goal: Low-Latency for Dynamic Content
By Serving Data from Ubiquitous Web Caches
Low Latency
Less Processing
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Stale
Data
Innovation
Problem: changes cause stale data
Innovation
Solution: Baqend proactively revalidates data
Bloom filter
updateIs still fresh? 1 0 11 0 0 10 1 1
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Innovation
Solution: Baqend proactively revalidates data
Bloom filter
updateIs still fresh? 1 0 11 0 0 10 1 1
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
<
F. Gessert, F. Bücklers, und N. Ritter, „ORESTES: a Scalable Database-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-based Caching 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 the Watchmen? On
the Lack of Validation in NoSQL Benchmarking“, in BTW 2015.
M. Schaarschmidt, F. Gessert, und N. Ritter, „Towards Automated Polyglot
Persistence“, in BTW 2015.
S. Friedrich, W. Wingerath, F. Gessert, und N. Ritter, „NoSQL OLTP 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
F. Gessert, N. Ritter „Scalable Data Management: NoSQL Data Stores in
Research and Practice“, 32nd IEEE International Conference on Data
Engineering, ICDE, 2016
W. Wingerath, F. Gessert, S. Friedrich, N. Ritter „Real-time stream processing for Big
Data“, Big Data Analytics it - Information Technology, 2016
F. Gessert, W. Wingerath, S. Friedrich, N. Ritter “NoSQL Database Systems: A Survey
and Decision Guidance”, Computer Science - Research and Development, 2016
F. Gessert, N. Ritter „Polyglot Persistence“, Datenbank Spektrum, 2016.
1 4 020
purge(obj)
hashB(oid)hashA(oid)
31 1 110
Flat(Counting Bloomfilter)
hashB(oid)hashA(oid)
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
𝑓 ≈ 1 − 𝑒−
𝑘𝑛
𝑚
𝑘
𝑘 = ln 2 ⋅ (
𝑛
𝑚
)
False-Positive
Rate:
Hash-
Functions:
With 20.000 distinct updates and 5% error rate: 11 KByte
Continuous Query Matching
Generalizing 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 result
changes in real-time?
2
Query Caching
Example
 Add, Change, Remove all entail an invalidation and
addition to the cache sketch
SELECT * FROM posts
WHERE tags CONTAINS 'b'
Query Predicate P
Cached Query Result Q
𝑜𝑏𝑗1 ∈ 𝐐
𝑜𝑏𝑗2 ∈ 𝐐
Change
Add
Remove
2
InvaliDB
Architecture
BAQEND
Create
Update
Delete
Pub-Sub Pub-Sub
1 0 11 0 0 10 1 1
Fresh Cache Sketch
Continuous
Queries
(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.
2
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 Filter
1
validation 4
5Writes (Public)
Read all
prevent conflicting
validations
Committed OR aborted + stale objects
Commit: readset versions & writeset
3
Reads
2
Scalable ACID Transcations
• Novelty: ACID transactions on sharded DBs like MongoDB
• Current Work: DESY and dCache building a scalable namespace
for their file system on this
3
With Caching
Without
Caching
BaqendParse Kinvey
0.3 s2.6 s 3.9 s
Competitive Advantage
What impact does Baqend have in practice?
0.7s
1.8s
2.8s
3.6s
3.4s
CALIFORNIA
0.5s
1.8s
2.9s
1.5s
1.3s
FRANKFURT
0.6s
3.0s
7.2s
5.0s
5.7s
SYDNEY
0.5s
2.4s
4.0s
5.7s
4.7s
TOKYO
+156%
0.5s
1.3s
FRANKFURT
Summary
0 1 0 0 1
0 1 0 1 1
1 1 0 0 0
0 0 0 1 1
HTTP
Caching
Cache Sketch TTL
Estimation
RT Query
Matching
Invali-dations
Frontend
Shop
Simultaneous
Users
< 1 second
Page Load
Time
7.8%
Conversion
Rate
3%
Server
Usage
Ziel mit InnoRampUpOur Vision for Baqend:
„A web without load times“
www.baqend.com
@Baqendcom

More Related Content

What's hot

Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Charles Allen
 
How TrafficGuard uses Druid to Fight Ad Fraud and Bots
How TrafficGuard uses Druid to Fight Ad Fraud and BotsHow TrafficGuard uses Druid to Fight Ad Fraud and Bots
How TrafficGuard uses Druid to Fight Ad Fraud and BotsImply
 
Redis Streams plus Spark Structured Streaming
Redis Streams plus Spark Structured StreamingRedis Streams plus Spark Structured Streaming
Redis Streams plus Spark Structured StreamingDave Nielsen
 
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooQuerying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooAll Things Open
 
Building a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidBuilding a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidImply
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB
 
Why data warehouses cannot support hot analytics
Why data warehouses cannot support hot analyticsWhy data warehouses cannot support hot analytics
Why data warehouses cannot support hot analyticsImply
 
Azure Big Data Story
Azure Big Data StoryAzure Big Data Story
Azure Big Data StoryLynn Langit
 
Apache Druid Vision and Roadmap
Apache Druid Vision and RoadmapApache Druid Vision and Roadmap
Apache Druid Vision and RoadmapImply
 
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxWebinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxDataStax
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkMongoDB
 
Secure, Low Latency with MongoDB
Secure, Low Latency with MongoDBSecure, Low Latency with MongoDB
Secure, Low Latency with MongoDBMongoDB
 
August meetup - All about Apache Druid
August meetup - All about Apache Druid August meetup - All about Apache Druid
August meetup - All about Apache Druid Imply
 
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova GenerazioneL’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova GenerazioneMongoDB
 
Druid: Under the Covers (Virtual Meetup)
Druid: Under the Covers (Virtual Meetup)Druid: Under the Covers (Virtual Meetup)
Druid: Under the Covers (Virtual Meetup)Imply
 
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB
 
An Introduction to Big Data, NoSQL and MongoDB
An Introduction to Big Data, NoSQL and MongoDBAn Introduction to Big Data, NoSQL and MongoDB
An Introduction to Big Data, NoSQL and MongoDBWilliam LaForest
 
Apache Druid Design and Future prospect
Apache Druid Design and Future prospectApache Druid Design and Future prospect
Apache Druid Design and Future prospectc-bslim
 
Can My Inventory Survive Eventual Consistency?
Can My Inventory Survive Eventual Consistency?Can My Inventory Survive Eventual Consistency?
Can My Inventory Survive Eventual Consistency?DataStax
 
MongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB
 

What's hot (20)

Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
 
How TrafficGuard uses Druid to Fight Ad Fraud and Bots
How TrafficGuard uses Druid to Fight Ad Fraud and BotsHow TrafficGuard uses Druid to Fight Ad Fraud and Bots
How TrafficGuard uses Druid to Fight Ad Fraud and Bots
 
Redis Streams plus Spark Structured Streaming
Redis Streams plus Spark Structured StreamingRedis Streams plus Spark Structured Streaming
Redis Streams plus Spark Structured Streaming
 
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooQuerying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
 
Building a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidBuilding a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache Druid
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data Presentation
 
Why data warehouses cannot support hot analytics
Why data warehouses cannot support hot analyticsWhy data warehouses cannot support hot analytics
Why data warehouses cannot support hot analytics
 
Azure Big Data Story
Azure Big Data StoryAzure Big Data Story
Azure Big Data Story
 
Apache Druid Vision and Roadmap
Apache Druid Vision and RoadmapApache Druid Vision and Roadmap
Apache Druid Vision and Roadmap
 
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStaxWebinar | From Zero to 1 Million with Google Cloud Platform and DataStax
Webinar | From Zero to 1 Million with Google Cloud Platform and DataStax
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
 
Secure, Low Latency with MongoDB
Secure, Low Latency with MongoDBSecure, Low Latency with MongoDB
Secure, Low Latency with MongoDB
 
August meetup - All about Apache Druid
August meetup - All about Apache Druid August meetup - All about Apache Druid
August meetup - All about Apache Druid
 
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova GenerazioneL’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
 
Druid: Under the Covers (Virtual Meetup)
Druid: Under the Covers (Virtual Meetup)Druid: Under the Covers (Virtual Meetup)
Druid: Under the Covers (Virtual Meetup)
 
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor ManagementMongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
MongoDB for Time Series Data Part 1: Setting the Stage for Sensor Management
 
An Introduction to Big Data, NoSQL and MongoDB
An Introduction to Big Data, NoSQL and MongoDBAn Introduction to Big Data, NoSQL and MongoDB
An Introduction to Big Data, NoSQL and MongoDB
 
Apache Druid Design and Future prospect
Apache Druid Design and Future prospectApache Druid Design and Future prospect
Apache Druid Design and Future prospect
 
Can My Inventory Survive Eventual Consistency?
Can My Inventory Survive Eventual Consistency?Can My Inventory Survive Eventual Consistency?
Can My Inventory Survive Eventual Consistency?
 
MongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB Atlas
 

Similar to Web Performance

Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load Times
Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load TimesCache Sketches: Using Bloom Filters and Web Caching Against Slow Load Times
Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load TimesFelix Gessert
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...Amazon Web Services
 
High-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsHigh-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsClusterpoint
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...confluent
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...DataStax
 
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB
 
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDBNaoki (Neo) SATO
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationMongoDB
 
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB
 
Data Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseData Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseDataStax
 
Onomi - MongoDB Introduction
Onomi - MongoDB IntroductionOnomi - MongoDB Introduction
Onomi - MongoDB IntroductionOnomi
 
5 Comparing Microsoft Big Data Technologies for Analytics
5 Comparing Microsoft Big Data Technologies for Analytics5 Comparing Microsoft Big Data Technologies for Analytics
5 Comparing Microsoft Big Data Technologies for AnalyticsJen Stirrup
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatestrajramab
 
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...MSAdvAnalytics
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...DataStax
 
Data Virtualization: An Introduction
Data Virtualization: An IntroductionData Virtualization: An Introduction
Data Virtualization: An IntroductionDenodo
 
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...Databricks
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading StrategiesMongoDB
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBDenny Lee
 

Similar to Web Performance (20)

Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load Times
Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load TimesCache Sketches: Using Bloom Filters and Web Caching Against Slow Load Times
Cache Sketches: Using Bloom Filters and Web Caching Against Slow Load Times
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
 
High-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsHigh-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutions
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
 
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
 
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital Transformation
 
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
 
Data Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax EnterpriseData Pipelines with Spark & DataStax Enterprise
Data Pipelines with Spark & DataStax Enterprise
 
Onomi - MongoDB Introduction
Onomi - MongoDB IntroductionOnomi - MongoDB Introduction
Onomi - MongoDB Introduction
 
5 Comparing Microsoft Big Data Technologies for Analytics
5 Comparing Microsoft Big Data Technologies for Analytics5 Comparing Microsoft Big Data Technologies for Analytics
5 Comparing Microsoft Big Data Technologies for Analytics
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatest
 
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...
Cortana Analytics Workshop: The "Big Data" of the Cortana Analytics Suite, Pa...
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
Data Virtualization: An Introduction
Data Virtualization: An IntroductionData Virtualization: An Introduction
Data Virtualization: An Introduction
 
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading Strategies
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 

Recently uploaded

What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 

Recently uploaded (20)

What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 

Web Performance

  • 1. Insert company logo UX/Frontend Web Performance Die effektivsten Techniken aus der Praxis Erik Witt Erik Witt 30.09.2016
  • 3. Average: 9,3s Loading… -1% Revenue 100 ms -9% Visitors 400 ms500 ms -20% Traffic 1s -7% Conversions Why performance matters
  • 4. What should be the goal? Delay User Perception 0 – 100 ms Instant 100 – 300 ms Small perceptible delay 300 – 1000 ms Machine is working 1+ s Mental context switch 10+ s Taks is abandoned Stay under 1000 ms to keep users attention I. Grigorik, High performance browser networking. O’Reilly Media, 2013.
  • 5.
  • 6. Concrete Example A scalable webshop at Expectations: • 2.7 Million Viewers • 300.000 Visitors in 30 minutes • 20.000 Requests per second
  • 7. If performance is so important for Business Success ...what causes slow page load times?
  • 8. State of the Art The tree bottlenecks Network Backend Frontend
  • 9. CSS Render Tree Layout Frontend Performance The critical rendering path Paint Network JavaScript CSSOM DOM <!doctype html> <title>Code Talks</title> <link href=all.css rel=stylesheet /> <script src=app.css ></script> <div> <h1>Web Performance</h1> </div> div { color: green; } h1 { padding: 10px; } <script> elem.style.width = "50px"; document.write("JS is awesome!"); </script> HTML DOM Execution
  • 10. Frontend Performance Render and parser blocking Google Developers, Web Fundamentals https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp What to do: • Inline critical CSS and JS above the fold • CSS at the top, JS at the bottom • Load non-critical CSS and JS asynchronously • Rendering the page progressively • Minify, concatenate, compress and cache CSS, JS and images
  • 11. Frontend Performance Tools to improve your page load PageSpeed Insights Profiling Minification & Compression Inlining & Optimization Google Closure UglifyJs & cssmin processhtml
  • 12. Frontend Performance Applied in the example processhtml Caching 565,9 KB Size: 767 ms Load time: 24 Requests:
  • 13. Network Performance Break 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 (1 with the new TCP Fast Open) • SSL connections have a more complex handshake  +2 roundtrips (only 1 with TLS False Start or Session Resumption) 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 Maximum 6 parallel connections DNS Lookup Initial Connection SSL Handshake Time to First Byte Content Download https://www.thinks.com/ 20 ms0 53 ms 70 ms 90 ms36 ms
  • 14. Network Performance The average website http://httparchive.org/ Transfer Size: 2480 KB Total Requests: 104
  • 15. I. Grigorik, High performance browser networking. O’Reilly Media, 2013. Network Performance Network latency impact
  • 16. Network Performance Network latency impact I. Grigorik, High performance browser networking. O’Reilly Media, 2013. 2× Bandwidth = Same Load Time ½ Latency ≈ ½ Load Time
  • 17. Network Performance Common 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 HTTP/2 Performance Advantages: • Server Push • Header Compression • Request Pipelining • Multiplexing over 1 TCP connection (no head-of-line blocking)
  • 18. Network Performance Applied in the example What we do: • Heavy browser and CDN Caching • Avoid Redirects (+ serve from CDN) • Single Page App functionality • Persistent Backend Connections • Gzip Compression • IP Anycasting to nearest POP
  • 19. Backend Performance Overview • Horizontally scalable databases (e.g. “NoSQL”) • Replication • Sharding • Failover Load Balancer Application Server Database • Load Balancing • Auto-scaling • Failover • Stateless session handling • Minimize shared state • Efficient Code & IO Load Balancer Application Server Database
  • 20. Content-Delivery- Network Polyglot Storage Backend-as-a-Service Middleware: Caching, Transactions, Schemas, Invalidation Detection, … Standard HTTP Caching Unified REST API Backend Performance Applied in the example
  • 22. Performance: State of the Art Summarized Frontend Latency Backend • Doable with the right set of best practices • Good support through build tools • Caching and CDNs help, but a considerable effort and only for static content • Many frameworks and platforms • Horizontal scalability is very difficult
  • 23. Performance: State of the Art Summarized Frontend Latency Backend • Easy with the right set of best practices • Good support through build tools • Caching and CDNs help, but large effort and only for static content • Many frameworks and platforms • Horizontal scalability is very difficult 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/produc t/0636920033578.do https://developers.google.com/speed/ pagespeed/ https://gtmetrix.com http://www.webpagetest.org/
  • 24. Accelerated Mobile Pages Google‘s Approach for a Faster Web How AMP works: • Stripped down HTML + AMP tags  rendered asynchronously by AMP runtime • All CSS must be inlined • All JS must be async • Static sizes (e.g. iframes)  no repaints • Cached in Google CDN, as long as it is crawled the next time (no invalidation)  only suited for static media, e.g. news How to apply the same techniques for any website? https://www.ampproject.org /docs/reference/spec.html
  • 25. Goal: Low-Latency for Dynamic Content By Serving Data from Ubiquitous Web Caches Low Latency Less Processing
  • 26. 6 Years Research & Development New Algorithms Solve Consistency Problem Stale Data Innovation Problem: changes cause stale data
  • 27. Innovation Solution: Baqend proactively revalidates data Bloom filter updateIs still fresh? 1 0 11 0 0 10 1 1 6 Years Research & Development New Algorithms Solve Consistency Problem
  • 28. Innovation Solution: Baqend proactively revalidates data Bloom filter updateIs still fresh? 1 0 11 0 0 10 1 1 6 Years Research & Development New Algorithms Solve Consistency Problem < F. Gessert, F. Bücklers, und N. Ritter, „ORESTES: a Scalable Database-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-based Caching 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 the Watchmen? On the Lack of Validation in NoSQL Benchmarking“, in BTW 2015. M. Schaarschmidt, F. Gessert, und N. Ritter, „Towards Automated Polyglot Persistence“, in BTW 2015. S. Friedrich, W. Wingerath, F. Gessert, und N. Ritter, „NoSQL OLTP 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 F. Gessert, N. Ritter „Scalable Data Management: NoSQL Data Stores in Research and Practice“, 32nd IEEE International Conference on Data Engineering, ICDE, 2016 W. Wingerath, F. Gessert, S. Friedrich, N. Ritter „Real-time stream processing for Big Data“, Big Data Analytics it - Information Technology, 2016 F. Gessert, W. Wingerath, S. Friedrich, N. Ritter “NoSQL Database Systems: A Survey and Decision Guidance”, Computer Science - Research and Development, 2016 F. Gessert, N. Ritter „Polyglot Persistence“, Datenbank Spektrum, 2016.
  • 29. 1 4 020 purge(obj) hashB(oid)hashA(oid) 31 1 110 Flat(Counting Bloomfilter) hashB(oid)hashA(oid) Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1 𝑓 ≈ 1 − 𝑒− 𝑘𝑛 𝑚 𝑘 𝑘 = ln 2 ⋅ ( 𝑛 𝑚 ) False-Positive Rate: Hash- Functions: With 20.000 distinct updates and 5% error rate: 11 KByte
  • 30. Continuous Query Matching Generalizing 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 result changes in real-time? 2
  • 31. Query Caching Example  Add, Change, Remove all entail an invalidation and addition to the cache sketch SELECT * FROM posts WHERE tags CONTAINS 'b' Query Predicate P Cached Query Result Q 𝑜𝑏𝑗1 ∈ 𝐐 𝑜𝑏𝑗2 ∈ 𝐐 Change Add Remove 2
  • 32. InvaliDB Architecture BAQEND Create Update Delete Pub-Sub Pub-Sub 1 0 11 0 0 10 1 1 Fresh Cache Sketch Continuous Queries (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. 2
  • 33. 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 Filter 1 validation 4 5Writes (Public) Read all prevent conflicting validations Committed OR aborted + stale objects Commit: readset versions & writeset 3 Reads 2
  • 34. Scalable ACID Transcations • Novelty: ACID transactions on sharded DBs like MongoDB • Current Work: DESY and dCache building a scalable namespace for their file system on this 3 With Caching Without Caching
  • 35.
  • 37. Competitive Advantage What impact does Baqend have in practice? 0.7s 1.8s 2.8s 3.6s 3.4s CALIFORNIA 0.5s 1.8s 2.9s 1.5s 1.3s FRANKFURT 0.6s 3.0s 7.2s 5.0s 5.7s SYDNEY 0.5s 2.4s 4.0s 5.7s 4.7s TOKYO +156% 0.5s 1.3s FRANKFURT
  • 38. Summary 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 HTTP Caching Cache Sketch TTL Estimation RT Query Matching Invali-dations Frontend
  • 39.
  • 40. Shop Simultaneous Users < 1 second Page Load Time 7.8% Conversion Rate 3% Server Usage
  • 41. Ziel mit InnoRampUpOur Vision for Baqend: „A web without load times“ www.baqend.com @Baqendcom

Editor's Notes

  1. -Das (was?) waren 9,3 s – so lange lädt eine durchschnittliche E-Commerce Webseite -Selbst kleinste Ladezeitverzögerungen haben immense Auswirkungen auf die Nutzerzufriedenheit und den Geschäftserfolg -Zahllose Studien haben diese Effekte quantifiziert, hier sind einige der bekanntesten -Amazon, 800 Mio. verlorener Umsatz -Yahoo, weil Nutzer unzufriedener sind -Google, 500ms durch attraktivere Inhalte und trotzdem Rückgang des Umsatzes und der Aufrufe -Aberdeen Group, Marktforschungsinstitut, d.h. 7% weniger Besucher werden zu Kunden -Neben diesen abstrakten Zahlen haben wir mit Unternehmen wie GoodGame Studios und WLW gesprochen
  2. -So you probably know that many of the shops presented there are overloaded or offline during the show.
  3. -These studies show, that time is money -I personally have always hated slow websites. So coming from a research background, I asked myself: what is the underlying problem?
  4. -Here we see a user from the US accessing a european application -Two bottlenecks cause slow load times 1. Während ein Nutzer auf eine Webanwendung zugreift und erwartungsvoll auf sein Display starrt, muss zunächst ein Web-Server das sogenannte „Backend“ die Webseite generieren. Dabei entsteht eine hohe Verarbeitungszeit beim Zusammenstellen der Inhalte aus einer Datenbank. 2. Diese Webseite und alle Ressourcen, die sie enthält –z.B. Bilder- müssen über das Internet zum Nutzer übertragen werden. Dadurch entsteht eine als „Latenz“ bezeichnete Übertragungszeit, die um so höher ist, je weiter der Nutzer von dem Backend entfernt ist. Diese Latenz und nicht die Bandbreite bestimmen die wahrgenommenen Ladezeiten. - Diese beiden Engpässe können wir durch unser Produkt Baqend für beliebige Anwendungen lösen
  5. Is loading of images part of the CRT?
  6. In build tools das meiste kombinierbar „WebPack“
  7. Webpack baut performante strukturen für single page apps und optimiert schon vieles Post CSS optimiert vendor prefixe anhand von browser statistiken, fasst mediaqueries zusammen
  8. TCP Fast Open (TFO) is a mechanism that aims to eliminate the latency penalty imposed on new TCP connections by allowing data transfer within the SYN packet. However, it does have its own set of limitations: there are limits on the maximum size of the data payload within the SYN packet, only certain types of HTTP requests can be sent, and it works only for repeat connections due to a requirement for a cryptographic cookie.  Based on traffic analysis and network emulation done at Google, researchers have shown that TFO can decrease HTTP transaction network latency by 15%, whole-page load times by over 10% on average, and in some cases by up to 40% in high-latency scenarios!
  9. A lot of small transfers
  10. Was ändert sich Client-seitig bzw. für die Anwendungsentwickler?
  11. -Bei unserem Ansatz werden alle Daten nicht nur im Backend sondern auch global verteilt zwischengespeichert, um so dicht wie möglich an Endnutzern positioniert zu sein. Wenn also ein Nutzer die Webanwendung aufruft, ist unabhängig von seinem Standort die Latenz gering Durch die Zwischenspeicher, sogenannte „Caches“, entsteht kein Verarbeitungsaufwand im Backend. Durch unsere Algorithmen können diese existierenden und zahlreich vorhandenen Caches erstmals für alle Anwendungsdaten genutzt werden.
  12. -Die technische und wissenschaftliche Basis von Baqend beruht auf verschiedenen Innovationen im Bereich Datenbanken und Cloud Computing Die neuen Algorithmen und Architekturen sind durch 4,5 Jahre Forschung und Entwicklung am Institut für Verteilte Systeme und Informationssysteme an der Uni Hamburg entstanden. Kern der Innovation ist eine Technik, die es erlaubt, die bestehende Caching-Infrastruktur auf eine völlig neue Art zu verwenden Beim klassischen Caching werden angefragte Daten automatisch in Caches zwischengespeichert Ein Problem entsteht, wenn Daten geändert werden. Nach der Änderung sind die Einträge in den Caches veraltet. Wenn Nutzer also die Webanwendung aufrufen, erhalten sie veraltete Daten.
  13. -Es gibt zwei Typen von Caches: solche die durch ein Backend aktualisierbar sind und solche die unter keiner Kontrolle stehen -Unsere Lösung verwendet eine spezielle Datenstruktur, über die effizient festgestellt werden kann, welche Daten veraltet sind. Zusätzlich werden bei einer Änderung Daten in kontrollierbaren Caches automatisch aktualisiert Die Webanwendung verwendet daraufhin automatisch den Bloomfilter, um veraltete Daten neu zu laden, wodurch Caches sich selber aktualisieren. Für alle Anwender ist dadurch garantiert, dass sie stets aktuelle Daten erhalten.
  14. -Es gibt zwei Typen von Caches: solche die durch ein Backend aktualisierbar sind und solche die unter keiner Kontrolle stehen -Unsere Lösung verwendet eine spezielle Datenstruktur, über die effizient festgestellt werden kann, welche Daten veraltet sind. Zusätzlich werden bei einer Änderung Daten in kontrollierbaren Caches automatisch aktualisiert Die Webanwendung verwendet daraufhin automatisch den Bloomfilter, um veraltete Daten neu zu laden, wodurch Caches sich selber aktualisieren. Für alle Anwender ist dadurch garantiert, dass sie stets aktuelle Daten erhalten.
  15. Sollte man das wirklich ‚Architecture‘ überschreiben? Vielleicht besser ‚Principle‘ oder ‚Basic Idea‘ oder ‚Basic Principle‘ … Warum zweimal Pub-Sub? Warum die Pfeile in diese Richtungen? Kann man ‚Websockets‘ weglassen? Was ist Continuous Query? Was ist das grundlegende Prinzip der Wartung von Queries durch den Cache Sketch?
  16. -But you might argue „hey, I have an e-commerce portal for german sausage for german customers, why would I care about latency?“. Sorry, I know, jokes about german sausage are the worst. But here is the thing…
  17. Hier fehlen die Queries (und die polyglotten views)
  18. One of the most successful startups that ever presented there was Thinks. The developed a Fitness Towel sold over their shop.
  19. -4 of the other shops were completely down -3 remained available, and the Baqend-based shop scored the maximum Google Page Speed Score -and that advantage is the difference between apologizing for being offline and apologizing for being out of stock
  20. Unsere Vision ist eine Web- und App-Welt ohne Ladezeiten. Und wir wollen Ihnen als Unternehmen und Entwickler die technische Plattform dafür geben.