SlideShare une entreprise Scribd logo
HOW QUALITIES THAT GO BEYOND FUNCTIONAL
REQUIREMENTS DRIVE INNOVATIONS IN MANAGED
RUNTIMES
THE "-ILITIES" OF
SOFTWARE
ENGINEERING
Monica
@mon_bec
k
THE AGENDA
Discuss “-ilities” aka non-
functional requirements and
dive into Performance with GC
architecture + Scale the Clouds
and provide some awesome
quotes 
Software
Engineering
What are we
building?
How are we
building it?
Software
Engineering
Software
Design &
Development
Software
Architectural
Requirements
Software
Engineering
Functional
Requirements
Qualities
aka “ilities” aka
Non-Functional
Requirements
“ILITIES”?
Ility is an abstract
quality that good
software should
exhibit - Wiktionary
ILLITY ATTRIBUTES
Performance
Security
Scalability
Usability
Portability
Observability
Ility
How?
What?
Performance
What?
I WANT EVERYTHING
TO GO FAST(ER)!
PERFORMAN
CE
WHAT DOES THAT EVEN
MEAN?
Gather your
stakeholders
and define
success!
Success Criteria
for
Performance
Requirements
or
Service Level
Agreements
Footprint
?
Response
Times?
Throughp
ut?
Availabilit
y?
Utilization
?
Capacity?
A pplication
timeline
T0 T1
Stim
u l u s
arriv
al
Respo
nse
sent
A pplication
timeline
T0 T2
T1
Stim
ulus
arriv
al
Respo
nse
sent
A pplication
tim eline
Stim
ulus
arriv
al
Respo
nse
sent
T0 T1
A pplication
timeline
T0 T2
T1
Stim
u l u s
arriv
a l
Respo
nse
sent
A pplication
timeline
T0 T1
A pplication
tim eline
T0 T2
T1
Performance
How?
LET’S
ARCHITECT
A GARBAGE
COLLECTOR
THROUGHPUT AND
LATENCY ARE THE
TWO MAIN DRIVERS
TOWARDS
REFINEMENT IN
GARBAGE
COLLECTION
ALGORITHMS
GC
FACT:
A Simple
GC
Generational
GC Work
Throughp
ut
Maximize
r
Parallel Work
Task
Queues
Generational
Low-
Latency
Optimize
d
Incremental
Marking
Generational
Tunable Work
Units
Parallel
GC
Z GC or
Shenando
ah GC
OPENJDK GCS
G1 GC
OPENJDK GCS
Ility
How?
What?
Scalability
What?
SHOULD I SCALE UP
OR
SHOULD I SCALE OUT?
SCALABILITY
Pros Cons
Bigger system – more processing
power, higher bandwidth, spatial
locality
Hardware layout and data
temporal locality needs could lead
to latency increase and non-
uniformity of access
Almost little to none configuration
changes lead to faster turnaround
time
The workload’s bulk and scale
could render it to work only with
ageing systems
Scaling
Up in
System
Pros Cons
Highly available system -
downtime is non-existent
Study your system’s scaling factor
Grow or shrink the distributed
footprint on demand
Higher footprint would add more
costs (power, space, cooling)
Scaling
Out with
System
Scalability
How?
SCALING THE CLOUD
FOR PERFORMANCE
Core Counts
Scaling
Factor
Max
System
Capacity
- Demand driven
- Highlights
concurrency effects
- Helps with Scaling Up
or Scaling Out
decisions
- Iterative process
- Determines max
throughput
- Helps with
understanding the
number of
concurrent users or
requests that a
system can handle
Incrementing
the worker
threads
0
0.5
1
1.5
2
2.5
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Normalized Gen 2 Max System Capacity Gen 2 Scaling Factor
Core Counts
Scaling
Factor
Max
System
Capacity
Core Counts
0
0.5
1
1.5
2
2.5
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Normalized Gen3 Max System Capacity Gen 3 Scaling Factor
Scaling
Factor
Max
System
Capacity
Core Counts
0
0.2
0.4
0.6
0.8
1
1.2
Single JVM Dual JVM Quad JVM
Normalized Gen 3 Max System Capacity
Max
System
Capacity
SCALABILITY
PROJECTIONS
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Non-Linear
Non-Linear Trendline
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-0.5
0
0.5
1
1.5
2
2.5
3
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-1
0
1
2
3
4
5
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-1
0
1
2
3
4
5
2 4 8 16 24 32 48 64 96
Non-Linear Linear
These projections look
crazy, don’t they?
SCALABILIT
Y MODELS
AMDAHL’S LAW
https://wso2.com/blog/research/scalability-modeling-
using-universal-scalability-law/
SCALABILIT
Y MODELS
https://blog.knoldus.com/understanding-laws-of-
scalability-and-the-effects-on-a-distributed-system/
UNIVERSAL
SCALABILITY
LAW
SCALABILIT
Y MODELS
https://blog.knoldus.com/understanding-laws-of-
scalability-and-the-effects-on-a-distributed-system/
A FEW
INNOVATIONS IN
OPENJDK DRIVEN BY
NON - FUNCTIONAL
REQUIREMENTS
Portability
What?
Write Once Run Anywhere...
?
How?
OPENJDK
PORTER’S
GROUP
Linux,
Alpine,
macOS,
Windows
X64,
Arm64,
Apple Si
https://openjdk.org/groups/porters/
WHAT IS AN OPENJDK PORT?
• Windows on Arm64 was a new platform for OpenJDK
• In-order to run Java applications on this new
platform, we need to get the Java Runtime
Environment (JRE) to work on it.
• A JDK is a superset of a JRE as it includes tools and
utilities for development and debugging
• In order to be able to develop in Java, we need to
get the JDK to work on the new platform
Java
HotSpot VM
A JRE
Class
Libraries
Runtime
Execution
Engine
UI Toolkits
Base, Lang,
Util Libs
Usability
What?
Usability
Customer
Experience
User
Experience
Customer Experience =
Capability + Reliability +
Security
- Alan Chan
Managing Director, Global Head
of SRE, JP Morgan Chase & Co
PUTTING IT
ALL
TOGETHER
-ILITIES MAKE US
EFFICIENT
DO MORE WITH
LESS
- John Cunningham
CVP, Software Engineering, Microsoft
THANK
YOU
Microsoft’s commitment to the Java ecosystem
LinkedIn Azure Yammer
Minecraft Realms Bing
* Internal systems. Does not include customer workloads.
Others …
Java is widely used internally at Microsoft
CONTENTION VS
THROTTLING
CONTENTION
THROTTLING
SCALABILITY
LET’S TALK ABOUT CONCURRENCY &
PARALLELISM
This
Photo
by
Unknown
Author
is
licensed
under
CC
BY-NC-ND
Concurrency = Throughput x Response Time
JAVA MUTATORS AND GC THREADS
WORKING TOGETHER
G1 GC Parallel Full GC
GC Background Threads
Java Application Threads
Paus
e
Mark
Start
Paus
e
Mark
End
Pause
Relocat
e Start
Concurrent
Mark/Rema
p
Concurrent
Relocate
Concurrent Prepare
for Relocation
GC Background Threads
CONCURRENCY & PARALLELISM IN
Z GC

Contenu connexe

Similaire à The ilities of software engineering.pptx

When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
Eoin Woods
 
Introduction to Chaos Engineering
Introduction to Chaos EngineeringIntroduction to Chaos Engineering
Introduction to Chaos Engineering
Raymond Adrian (Rad) Butalid
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
WSO2
 
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Amazon Web Services
 
AI for Software Engineering
AI for Software EngineeringAI for Software Engineering
AI for Software Engineering
Miroslaw Staron
 
5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS
Christian Beedgen
 
Tech foundations-slides
Tech foundations-slidesTech foundations-slides
Tech foundations-slides
tranquynh93
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptx
ssuser78ac77
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
Giulio Roggero
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
Randy Shoup
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard Problems
Salesforce Developers
 
Evolving big microservice architectures
Evolving big microservice architecturesEvolving big microservice architectures
Evolving big microservice architectures
Nikolay Stoitsev
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
CA Technologies
 
Scaling DevOps Adoption
Scaling DevOps AdoptionScaling DevOps Adoption
Scaling DevOps Adoption
Mark Rendell
 
Requirements Management Using Innoslate
Requirements Management Using InnoslateRequirements Management Using Innoslate
Requirements Management Using Innoslate
Elizabeth Steiner
 
Microevent
MicroeventMicroevent
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.
DevOps.com
 
jVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by SchoginijVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by Schogini
Schogini Systems Pvt Ltd
 
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
Getting value from IoT, Integration and Data Analytics
 
Low-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP DaysLow-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP Days
Nazarii Cherkas
 

Similaire à The ilities of software engineering.pptx (20)

When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
 
Introduction to Chaos Engineering
Introduction to Chaos EngineeringIntroduction to Chaos Engineering
Introduction to Chaos Engineering
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
 
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
 
AI for Software Engineering
AI for Software EngineeringAI for Software Engineering
AI for Software Engineering
 
5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS
 
Tech foundations-slides
Tech foundations-slidesTech foundations-slides
Tech foundations-slides
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptx
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard Problems
 
Evolving big microservice architectures
Evolving big microservice architecturesEvolving big microservice architectures
Evolving big microservice architectures
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
 
Scaling DevOps Adoption
Scaling DevOps AdoptionScaling DevOps Adoption
Scaling DevOps Adoption
 
Requirements Management Using Innoslate
Requirements Management Using InnoslateRequirements Management Using Innoslate
Requirements Management Using Innoslate
 
Microevent
MicroeventMicroevent
Microevent
 
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.
 
jVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by SchoginijVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by Schogini
 
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
 
Low-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP DaysLow-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP Days
 

Plus de Monica Beckwith

A G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptxA G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptx
Monica Beckwith
 
ZGC-SnowOne.pdf
ZGC-SnowOne.pdfZGC-SnowOne.pdf
ZGC-SnowOne.pdf
Monica Beckwith
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
Monica Beckwith
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
Monica Beckwith
 
Applying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBApplying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBB
Monica Beckwith
 
Intro to Garbage Collection
Intro to Garbage CollectionIntro to Garbage Collection
Intro to Garbage Collection
Monica Beckwith
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent Collectors
Monica Beckwith
 
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSOPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
Monica Beckwith
 
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual MachineThe Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
Monica Beckwith
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Monica Beckwith
 
JFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceJFokus Java 9 contended locking performance
JFokus Java 9 contended locking performance
Monica Beckwith
 
Java Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideJava Performance Engineer's Survival Guide
Java Performance Engineer's Survival Guide
Monica Beckwith
 
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
Monica Beckwith
 
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time CompilationThe Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
Monica Beckwith
 
Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!
Monica Beckwith
 
Game of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GCGame of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GC
Monica Beckwith
 
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Monica Beckwith
 
GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)
Monica Beckwith
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
Monica Beckwith
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Monica Beckwith
 

Plus de Monica Beckwith (20)

A G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptxA G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptx
 
ZGC-SnowOne.pdf
ZGC-SnowOne.pdfZGC-SnowOne.pdf
ZGC-SnowOne.pdf
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
 
Applying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBApplying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBB
 
Intro to Garbage Collection
Intro to Garbage CollectionIntro to Garbage Collection
Intro to Garbage Collection
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent Collectors
 
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSOPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
 
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual MachineThe Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!
 
JFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceJFokus Java 9 contended locking performance
JFokus Java 9 contended locking performance
 
Java Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideJava Performance Engineer's Survival Guide
Java Performance Engineer's Survival Guide
 
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
 
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time CompilationThe Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
 
Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!
 
Game of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GCGame of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GC
 
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
 
GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 

Dernier

Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
Kamal Acharya
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
Emre Günaydın
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
Kamal Acharya
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
Kamal Acharya
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
gettygaming1
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
PrashantGoswami42
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
NurvisNavarroSanchez
 
Antenna efficency lecture course chapter 3.pdf
Antenna  efficency lecture course chapter 3.pdfAntenna  efficency lecture course chapter 3.pdf
Antenna efficency lecture course chapter 3.pdf
AbrahamGadissa
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
fluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerfluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answer
apareshmondalnita
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
MuhammadTufail242431
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
AhmedHussein950959
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
Kamal Acharya
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
VigneshvaranMech
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 

Dernier (20)

Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
Antenna efficency lecture course chapter 3.pdf
Antenna  efficency lecture course chapter 3.pdfAntenna  efficency lecture course chapter 3.pdf
Antenna efficency lecture course chapter 3.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
fluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerfluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answer
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 

The ilities of software engineering.pptx

Notes de l'éditeur

  1. Jakub’s talk had cat photos and it was awesome and brought a smile to my face, so here I have my cats and dogs. I hope they bring smile to yours as well
  2. So let’s start from the very beginning – Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  3. Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  4. Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  5. Say you’d like to buy a car or a truck – and you’d like to be able to tow a trailer – now that becomes a desired attribute for useability and enables scalability
  6. In this talk, I’d like to walk a few of this attributes with you Security – e.g. Transport Layer Security (TLS 1.3 vs 1.0) Observability: ability to understand complex systems internal state based on workloads, e.g. JFR
  7. and together we can investigate the What the How. First we will dive into designing a GC for performance, then we will look at Scalability and investigate VMs for either scale out or scale up purposes
  8. let’s dive in deeper to performance requirements by trying to define the attributes first
  9. so what’s the first thing that people talk about when discussing performance? Say if you ask your end user “what needs to happen inorder for our system to be performant?” what would their answer look like?
  10. Let’s get some clarity on that
  11. But make sure you define what fast means to your customer. Refine definition This is gathering details wrt nfr.
  12. Footprint is the space that is needed to run your software.It's both about the memory footprint and also the physical resources Responsiveness: If I send a stimulus now, how much time ’til I get a response back? Throughput: How can I maximize the operations per second of my system? Availability is the uptime and Mean Time Between Failure of the system Let’s start with what we mean by response time.
  13. If I send a stimulus now, how much time ’til I get a response back?
  14. How can I maximize the operations per second of my system?
  15. Work done is Throughput = operations per second. (transactional DB) transactions per second, (query DB): requests per second
  16. Now that we know some of the attributes, let’s try to understand the how
  17. Before we start with our GC architecture, let me give you a fact that will help clarify why I chose GC for the perf requirement exercise.
  18. So, what do we know – we know that the GC will need to do some GC work and then we also know the weak generational hypothesis that most objects will die young.
  19. No concurrency == app has max utilization of resources and that should give it good throughput
  20. Regions == smaller work units. More granularity. All concurrent work needs maintenance barriers. With that we have successfully architected two GCs
  21. Next ility
  22. What’s the age-old question that everyone wants to know?
  23. Now that we know some of the attributes, let’s try to understand what they stand for and then let’s dive in deeper to performance requirements by investigating the how
  24. Normalized =(C18-MIN(C18:C25))/(MAX(C18:C25)-MIN(C18:C25))
  25. At 1, it looks like it could handle the number of concurrent users or requests to fit in with the other cores At 2 and at 3, we see concurrency effects Normalized =(C18-MIN(C18:C25))/(MAX(C18:C25)-MIN(C18:C25))
  26. Single JVM for gen 3 performs just as well as dual JVM on Gen 2 – so basically Gen 2 will benefit from scale out and Gen 3 will benefit from scaling up to the max cores.
  27. Gene Amdahl shows that there is a fraction of the workload which cannot be parallelized, called serial fraction i.e. no matter how many cores are allocated for the program, only a single core will be executing the serial portion of the program. We use σ to denote this serial fraction of workload. Hence (1-σ) becomes the parallel fraction of workload. σ takes values in the range (0, 1). Continuous validity of single processor
  28. Universal Scalability Law (USL) is an extension of Amdahl’s law. It accounts for the additional overhead due to interprocess communication that happens application software level, middleware level, operating system level, and hardware level. Three Cs: Concurrency (gamma), Contention (alpha), Coherency (beta)
  29. Universal Scalability Law (USL) is an extension of Amdahl’s law. It accounts for the additional overhead due to interprocess communication. Interprocess communication happens at multiple levels within the system: application software level, middleware level, operating system level, and hardware level.
  30. J/ava is portable. What does it mean for openjdk?
  31. Executables (In the bin/ subdirectory) An implementation of the Java Runtime Environment (JRE). The JRE includes a Java Virtual Machine (JVM™), class libraries, and other files that support the execution of programs written in the Java programming language. This directory also includes tools and utilities that will help you develop, execute, debug, and document programs written in the Java programming language. For further information, see the tools documentation at https://docs.oracle.com/en/java/javase/12/tools/tools-and-command-reference.html Configuration files (In the conf/ subdirectory) Files that contain user-configurable options. Files in this directory can be edited to change the JDK's access permissions, configure security algorithms, and set the Java Cryptography Extension Policy Files which might be used to limit the JDK's cryptographic strength. C header Files (In the include/ subdirectory) C-language header files that support native-code programming with the Java Native Interface and the Java Virtual Machine (JVM) Debugger Interface. Compiled Java Modules (in the jmods/ subdirectory) Compiled modules used by jlink to create custom runtimes. Copyright and License files (in the legal/ subdirectory) License and copyright files for each module. Includes third party notices as .md (markdown)files. Additional Libraries (In the lib/ subdirectory) Additional class libraries and support files required by the JDK. These files are not intended for external use.
  32. In the opening keynote we heard about project Amber and how removing the boiler plate is making the Java language much more usable. So let’s briefly look at Usability
  33. Usability is user-friendliness be it about language level boiler plate removal or having GC with minimal to none command line options or if your error messages like nullpointerexceptions in JDK14 User Experience is perception and reaction to a feature – like some people may prefer Java 19 over Kotlin due to the “User Experience” Customer experience is about the total journey – you will have various touchpoints with your customer. I have this awesome quote by Alan who is the head of SRE @JP Morgan https://www.testingtime.com/en/blog/usability-ux-and-cx-compared/
  34. 'nfr' needs more love and appreciation from engineers and products. at the end of the day "customer experience = capability + reliability + security" - all are equally critical. a lot of manpower and brainpower are drained today due to support work and manual toils. to make a platform more reliable, those time/resources/power will be reinvested to innovation and creation...and better products.
  35. As we say our goodbyes today, I’d like to leave you with a few thoughts -
  36. Throughout this conference and this talk there was a theme of efficiency. So I’d like to say that Ilities are Qualities that make us efficient. So, I hope you internalize them.
  37. They are asking you to be efficient. Measure in all dimensions Efficiency is defined as the ratio between speed up and the number of processors E(p) = S(p)/P
  38. Concurrency is one of those requirements that might as well be specified with f
  39. Microsoft ported OpenJDK to Windows on Arm to support Azure servers, Minecraft, and other scenarios. Minecraft coming soon to Windows on Arm devices. LinkedIn hundreds of thousands of JVMs powering every feature of the service. Bing: indexing services powered by OpenJDK. Bing is the search engine on Windows, behind “Search results” in the Start menu. Minecraft Realms: Microsoft-hosted servers of Minecraft for world-wide community of Minecraft players. Yammer: creators of Java frameworks like Dropwizard. Powers certain features behind Office 365/MS Teams. Azure: infrastructure control plane leverages some Java-based services for resource provisioning orchestration. Nuance and Metaswitch: Recent Microsoft acquisitions heavily invested in Java technologies
  40. Let’s get some clarity on that
  41. Concurrency is one of those requirements that might as well be specified with f
  42. Concurrency is one of those requirements that might as well be specified with f
  43. Concurrency is one of those requirements that might as well be specified with f
  44. Concurrency is one of those requirements that might as well be specified with
  45. Concurrency is one of those requirements that might as well be specified with f