Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
The ilities of software engineering.pptx
1. HOW QUALITIES THAT GO BEYOND FUNCTIONAL
REQUIREMENTS DRIVE INNOVATIONS IN MANAGED
RUNTIMES
THE "-ILITIES" OF
SOFTWARE
ENGINEERING
Monica
@mon_bec
k
2.
3. THE AGENDA
Discuss “-ilities” aka non-
functional requirements and
dive into Performance with GC
architecture + Scale the Clouds
and provide some awesome
quotes
30. 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
33. 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
49. 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
60. LinkedIn Azure Yammer
Minecraft Realms Bing
* Internal systems. Does not include customer workloads.
Others …
Java is widely used internally at Microsoft
69. 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
Notas del editor
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
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
Functionality – what it does
Operation – how it does it – The ability of a software to execute and evolve
Functionality – what it does
Operation – how it does it – The ability of a software to execute and evolve
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
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
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
let’s dive in deeper to performance requirements by trying to define the attributes first
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?
Let’s get some clarity on that
But make sure you define what fast means to your customer. Refine definition This is gathering details wrt nfr.
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.
If I send a stimulus now, how much time ’til I get a response back?
How can I maximize the operations per second of my system?
Work done is Throughput = operations per second. (transactional DB) transactions per second, (query DB): requests per second
Now that we know some of the attributes, let’s try to understand the how
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.
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.
No concurrency == app has max utilization of resources and that should give it good throughput
Regions == smaller work units. More granularity. All concurrent work needs maintenance barriers. With that we have successfully architected two GCs
Next ility
What’s the age-old question that everyone wants to know?
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
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))
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.
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
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)
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.
J/ava is portable.
What does it mean for openjdk?
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.
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
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/
'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.
As we say our goodbyes today, I’d like to leave you with a few thoughts -
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.
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
Concurrency is one of those requirements that might as well be specified with f
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
Let’s get some clarity on that
Concurrency is one of those requirements that might as well be specified with f
Concurrency is one of those requirements that might as well be specified with f
Concurrency is one of those requirements that might as well be specified with f
Concurrency is one of those requirements that might as well be specified with
Concurrency is one of those requirements that might as well be specified with f