Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Orkhan Gasimov
ORKHAN GASIMOV
Architecture Practice Coordinator,
Digital Transformation Architect,
GlobalLogic
I am a passionate digital architect working at enterprise and solution
architecture levels. I work with projects transforming existing businesses
and those aimed to create new digital products by providing guidance
and help to oversee possible issues along the journey.
I love to motivate people, I love technology, and I’m proud to take part
in development of technologies that supercharge the world. I also love
to support community by providing talks at meetups and conferences,
sharing experience at global scale.
AGENDA
Tactics
Principles
Patterns
Anti-Patterns
WHAT IS PERFORMANCE?
Response time
Throughput
Resource utilization
Latency
Budget
Operation modes
THE PROCESS
Initiate
 Definition and validation of initial requirements
Construct
 Design
 Test in small (design and code review)
Deliver
 Test in Large
 Rework
 Assess
Maintain
Initiate
Construct
Deliver
Maintain
RISK MANAGEMENT
The time, scope and resources invested in performance management must be
proportional to project risks.
DESIGN DOCUMENT
IF YOU DON’T DOCUMENT IT,
IT DOESN’T EXIST!
• Architecture and detailed design documents
• Verification criteria of subsystem / component
• Test plan
• Test cases
• Requirements
1. Use cases
2. Budgets
3. Measurement and instrumentation
ARCHITECTURE QUALITY ATTRIBUTES
Performance
Interoperability
Usability
Reliability
Availability
Security
Maintainability
Modifiability
Testability
Scalability
Reusability
Supportability
TRADE-OFF
Conflicts are possible, compromises are required.
For instance, reliability and performance.
Triple-Modular Redundancy Recovery Blocks
Module 1
Module 2
Module 3
Voter
Logic
Block 1
Block 2
Block 3
Orkhan Gasimov "High Performance System Design"
PERFORMANCE ENGINEERING TACTICS
(“Software Architecture in Practice” 2nd edition, chapter 5.4 “Performance Tactics”)
Orkhan Gasimov "High Performance System Design"
INSTRUMENTATION PRINCIPLE
The most basic example – Logging
Instrument your code/app to see what’s happening inside
Instruments should be able to operate in different modes
SYNERGETIC
PRINCIPLES
Resource Sharing Principle
Parallel Processing Principle
Load Sharing Principle
RESOURCE SHARING PRINCIPLE
System resources are limited
Processes compete for resources
Some resource are available for shared usage (concurrent or sequential)
1. Use resources when they are available
2. Minimize resource lock/block time and free resources asap
3. Minimize execution window for planned jobs/tasks
PARALLEL PROCESSING PRINCIPLE
1. Process in parallel when communication overhead is less than performance gain
2. Measure communication and resource concurrency overhead
LOAD SHARING PRINCIPLE
Balance the workload by handling conflicting tasks at different times or in different locations.
1. Plan processes so that they do not use resources at the same time
2. Divide resources in such a way that processes use different parts of the resource, and do
not require the entire resource
INDEPENDENT
PRINCIPLES
Centering principle
Fixing-point principle
Locality principle
Processing versus Frequency Principle
CENTERING PRINCIPLE
Dominant workload functions:
A subset of system functions that are frequently used (20% of functions or less) and
that are performed 80% of time or more
1. Identify the dominant workload function and minimize their processing.
2. It is necessary to design / implement the dominant functions first.
FIXING-POINT PRINCIPLE
The fixing point is a point in time.
The latest fixing point is during execution, just before instructions are to be executed.
For responsiveness, fixing should establish data connections at the earliest feasible
point in time, such that retaining the connection is cost-effective
LOCALITY PRINCIPLE
Locality – closeness of desired actions, functions, and results to the physical resources
used to produce them.
Types of locality
1. Spatial
2. Temporal (i.e., time)
3. Effectual (i.e., purpose or intent)
4. Degree (i.e., intensity or size)
PROCESSING VS FREQUENCY PRINCIPLE
The trade-off between
the amount of work done in processing a request
and the number of requests received.
Orkhan Gasimov "High Performance System Design"
PERFORMANCE
PATTERNS
Fast Path
First Things First
Batching
Alternate Routes
Flex Time
Slender Cyclic Functions
FAST PATH
Function A Function B
Function C
Frequently used
(dominating)
Result
e.g. ATM
FIRST THINGS FIRST
Secondary / Unnecessary
Primary &
Important
e.g. Radar systems
BATCHING
A B C
e.g. Secure messaging
ALTERNATE ROUTES
e.g. Multi-dispatcher DB
FLEX TIME
e.g. Report generation
SLENDER CYCLIC FUNCTIONS
e.g. Cron
PERFORMANCE
ANTI-PATTERNS
God class
Excessive Dynamic Allocation
Circuitous Treasure Hunt
The One-Lane Bridge
Traffic Jam
GOD CLASS
EXCESSIVE DYNAMIC ALLOCATION
Object Request
Object Request
Object Request
New Object
New Object
New Object
Object Request
Object Request
Object Request
Pool of
Reusable Objects
CIRCUITOUS TREASURE HUNT
THE ONE-LANE BRIDGE
TRAFFIC JAM
CONTACTS
ogasimov@gmail.com
https://fb.com/ogassymov
www.linkedin.com/in/orkhan-gasimov
https://fb.com/groups/reactive.distributed
http://ogasimov.medium.com

More Related Content

Orkhan Gasimov "High Performance System Design"