SlideShare uma empresa Scribd logo
1 de 35
Scalability: What It Is and How to Analyse It

Escalabilidade: O Que É e Como Analisá-la


Prof. David S. Rosenblum
University College London
United Kingdom

http://www.cs.ucl.ac.uk/staff/D.Rosenblum/
Acknowledgments



• Letícia Duboc

• Tony Wicks

• Alex Wolf

• Emmanuel Letier


                    SBES 2007   2
The Concept of Scalability
The Importance of Scalability


• Gartner predictions for 2008
  – Moore’s Law continues to hold
     • Desktop PC: 4–8 CPUs @ 40GHz, 4–12GB RAM, 1.5TB
       storage, 100Gb network
  – Desktop PCs < 50% of end-user devices
• Microsoft Research ‘Towards 2020 Science’
  – The limits of Moore’s Law will soon be reached
  – Bandwidth is not keeping pace with storage capacity


      It is becoming ever more important for
       It is becoming ever more important for
            software systems to scale well!
            software systems to scale well!
                          SBES 2007                       4
But What Is Scalability?


‘I examined aspects of scalability, but did not find a
   useful, rigorous definition of it. Without such a
   definition, I assert that calling a system “scalable”
   is about as useful as calling it “modern”. I
   encourage the technical community to either
   rigorously define scalability or stop using it to
   describe systems.’

Mark D. Hill, ‘What is Scalability?’, ACM SIGARCH
 Computer Architecture News, vol. 18, no. 4,
 December 1990, pp. 18-21.
                          SBES 2007                        5
You Know It When You See It?


• Many uses of the term in technical literature
  –   Design documents
  –   Research papers
  –   Standards specifications
  –   Product brochures
• But very few precise definitions of the term
  – Notable exception: Parallel Computing




                            SBES 2007             6
Example
Documentum


‘Scalability is a key requirement for the corporate
  content infrastructure, … [which] needs to be
  capable of handling high volumes of content as
  well as of fulfilling high performance
  requirements.’




                        SBES 2007                     7
Example
Sun Microsystems


‘The Java 2 Platform, Micro Edition (J2ME)
  technology from Sun Microsystems, Inc. is used
  by developers to scale Java technology-based
  applications into small consumer and embedded
  devices.’




                       SBES 2007                   8
Example
SAP Specification


Mark Handley, Colin Perkins and Edmund Whelan, Session
  Announcement Protocol, RFC 2974, October 2000.

•   5500 Words, Including 3 Occurrences of ‘Scalability’:
     – Abstract: ‘This document describes version 2 of the multicast session
       directory announcement protocol, Session Announced Protocol (SAP), and
       the related issues affecting security and scalability that should be taken
       into account by implementors.’
     – Section on Terminology: ‘A SAP announcer periodically multicasts an
       announcement packet to a well known multicast address and port. The
       announcement is multicast with the same scope as the session it is
       announcing, ensuring that the recipients of the announcement are within
       the scope of the session the announcement describes (bandwidth and
       other such constraints permitting). This is also important for the scalability
       of the protocol, as it keeps local session announcements local.’
     – Section Heading: ‘Scalability and Caching’

                                       SBES 2007                                    9
For the Record


• I’m just as guilty …

Antonio Carzaniga, David S. Rosenblum and Alexander L.
  Wolf, ‘Achieving Scalability and Expressiveness in an
  Internet-Scale Event Notification Service’, Proc. Nineteenth
  ACM Symposium on Principles of Distributed Computing
  (PODC 2000), Jul. 2000, pp. 219–227.

• No precise, explicit definition of scalability
• Scalability by implication
   – Scalability of publish/subscribe infrastructure is related to choice of
     subscription language
   – Certain language features are not scalable
   – Thus, languages without those features are scalable!?!
                                  SBES 2007                                10
Some Typical Notions of Scalability
(1)


• High Performance
      – Computations/messages/transactions per second
      – Fixed-size and fixed-time parallel speedup
• Computational Complexity
      – Time and space complexity of algorithms
         • Polynomial is scalable
         • Exponential isn’t
• Abstraction
      – Programmer productivity as a function of the expressive
        power of programming languages


                                    SBES 2007                 11
Some Typical Notions of Scalability
(2)


• Software Tools
      – Testing considered more scalable than verification

      – State space explosion in model checking
         • Competing techniques compared in terms of state space size
         • Symmetries exploited to improve scalability


      – Effect of analysis precision on scalability
         • Is a bug-finding tool that scales to millions of lines of code
           ‘scalable’ if it identifies thousands of potential bugs?
             – What about the ‘scalability’ of the developer effort in
                analysing those bug reports?

                                    SBES 2007                               12
Some Typical Notions of Scalability
(3)


Charles B. Weinstock and John B. Goodenough, On System
  Scalability, technical note CMU/SEI-2006-TN-012,
  Software Engineering Institute, March 2006.

• Two main uses of the term scalability:
      – The ability to handle increased workload without adding resources
        to a system
      – The ability to handle increased workload by repeatedly applying a
        cost-effective strategy for extending a system’s capacity


• To which we might add …
      – The ability to handle existing workload better by extending a
        system’s capacity
                                    SBES 2007                           13
Some Definitions


‘Scalability: the ease with which a system or component can be
   modified to fit the problem area.’
                                                    [Software Engineering Institute]
    – What do ‘ease’ and ‘fit’ mean?


‘Scalability means not just the ability to operate, but to operate efficiently
   and with adequate quality of service, over the given range of
   configurations.’
                                                         [Jogalekar and Woodside]
    – What do ‘efficiently’ and ‘adequate’ mean?


‘An architecture is scalable … if it has a … linear (or sub-linear) increase
   in physical resource usage as capacity increases.’
                                                             [Brataas and Hughes]
    – Why linear?
    – What about quicksort, with O(n log n) average case and O(n2) worst case?

                                       SBES 2007                                  14
A Framework for
Characterising and Analysing Scalability
An Attempt to Unify These Ideas


Leticia Duboc, David S. Rosenblum and Tony Wicks, A
  Framework for Characterization and Analysis of Software
  System Scalability, Proc. ESEC/FSE 2007, Dubrovnik,
  Croatia, September 2007.

• Scalability is a quality of software systems …
   – characterized by the operational impact …
   – that characteristics of the execution environment and design have
     …
   – on measured system qualities …
   – as the characteristics are varied …
   – over expected ranges and/or alternatives

• If a software system can accommodate this variation in a
  way that is acceptable to stakeholders, then it is a scalable
  system.
                                SBES 2007                                16
Example
Google Search Engine


• Most people would agree that Google is scalable
   – Dramatic growth in the size of the Web
   – Dramatic growth in the rate of queries to Google
   – Yet a virtually constant response time for users


• Naturally parallelisable problem
   – Implemented as a cluster of commodity PCs
   – Cluster increased as Web and query load increase
   – Note that this is an instance of the second of Weinstock
     and Goodenough’s two uses of the term scalability

                            SBES 2007                       17
The Scalability Framework
As Exemplified by Google

                                           Scalability Goal/Question
                        design characteristics
                                                                       identify and bound
                          environment and


                         scaling      non-scaling
   design environment




                          size of      network
   system execution




                           Web         latency
                                                                                            response
                        queries per   available             system                             time
                          second      bandwidth
Can Google provide constant                               response
                                         time as the number of
                                                           behaviour
                                                      I/O usage
                             govern        determine
 queriescluster second of the number of Web pages increase
          per      choice and                          price per
         size     algorithms
                              over time?             performance

                                                                                             system
                                      and bound                                             qualities
                                       identify




                                                                          Scalability Answer/Claim
                                                       SBES 2007                                        18
The Scalability Framework
In Terms of Experimental Design

                                         Scalability Goal/Question
                         identify                                           identify and bound
                        and bound

                        scaling     non-scaling
                                                                                distinct
   design environment




                                                                              behaviours
   system execution




                                                             system
                                                            behaviour                        dependent
                           independent
                             variables            govern                         determine    variables
                                                           implementation
                                                                 or
                                                               model

                        nuisance variables                                                 measure
                              factors                  manipulate
                                                                                                 raw data
                                                       over ranges

                                     Scalability Analysis

                                                                               Scalability Answer/Claim
                                                       SBES 2007                                            19
The Scalability Framework
In Terms of Microeconomics

                                         Scalability Goal/Question
                         identify                                              identify and bound
                        and bound

                        scaling     non-scaling
                                                                                   distinct
   design environment




                                                                                 behaviours
   system execution




                                                                system
                                                               behaviour                                       dependent
                           independent
                             variables            govern                            determine                   variables
                                                              implementation
                                                                    or
                                                                  model

                        nuisance variables                                                                   measure




                                                                                      preference functions
                              factors                      manipulate
                                                                                                                raw data
                                                           over range

                                     Scalability Analysis

                                                      utility function
                                                                                  Scalability Answer/Claim
                                                        SBES 2007                                                           20
The Scalability Framework
As Exemplified by Google Once More

                                         Scalability Goal/Question
                         identify                                     identify and bound
                        and bound

                        scaling     non-scaling
             Google is scalable with respect tobehaviours
                                                response time
                                                 distinct
   design environment
   system execution




                                                        system
         because it maintains a
              independent                           constant response
                                                          time as the
                                                       behaviour
                                                             dependent
                variables    govern                determine  variables
                      number of queriesorper second
                                        model

                                    implementation
            and the number of Web pages scale over time,
                        nuisance variables                                          measure
                              factors                manipulate
                                                                                           raw data
                                                     over range
              by increasing the number of machines in the cluster
                                             preference functions
                                     Scalability Analysis

                                                   utility function
                                                                         Scalability Answer/Claim
                                                     SBES 2007                                        21
Scalability Analysis


• Scalability as a multi-criteria optimization problem
• Scalability as a matter of stakeholders’ interest

                                 preference
                                   function
                                 preference
               quantified                           combined      utility
 scalability      as               function           into      function
   goals
                                 preference
                                   function


                            quantify satisfaction                quantify
                               with goals for                    overall
                                 individual                    satisfaction
                              system qualities                 with system

                                     SBES 2007                                22
Preferences, Utilities and
Pareto Optimality

• Preference for quality j
    pj : X j → R

• Normalized preference
    ∧
                   pj (Xj) − pj,min
    pj (Xj) =
                pj,max − pj,min
• Utility function
                          ∧           ∧
    U(X1,…,Xk) = λ1p1(X1) + … + λkpk(Xk)


• Preferences often compete, in the sense that improving
  one often degrades another
   – Example: tradeoff between throughput and message buffer size
   – This is called Pareto Optimality

                                          SBES 2007                 23
A Case Study
Case Study
Fortent Data Analysis System


• Intelligent Enterprise Framework (IEF)
   – Overnight analysis of transactional data to identify
     unusual and possibly fraudulent patterns of bank and
     credit card transactions
   – Java - 1,556 classes - 326,293 lines of code

• Surrogate Key Server (SKS) Component
         BE BE            BE                          SK SK          SK
         BE BE            BE   replace business       SK SK          SK
                               entity identifiers
         BE BE            BE                          SK SK          SK
         BE BE            BE        BE SK             SK SK          SK

                                    BE SK
          batches of                BE SK              injected
       transactions on                              surrogate keys
      business entities           entity-key
                                   mapping
                                     SBES 2007                            25
Case Study
SKS Implementation Details


• Early implementation (year 2000)
   – In-memory cache
   – High storage overhead, eventually crashing system

• Replaced with
   – In-memory cache for low-volume business entities
   – File-based cache for high-volume business entities

• Scalability concern: support a growing number of
  business entities in overnight batches, while
  maintaining throughput and memory usage within
  acceptable levels
                             SBES 2007                    26
Case Study
Framework Instantiation


• Independent Variables               • Dependent Variables
   – Scaling                                 – Average throughput
      • Number of distinct business             • minimum 100 transactions/sec
        entities                             – Memory usage
          – 36.6 million average                • up to 500 MB
          – 50 million maximum
                                             – Disk usage
      • Number of threads
                                                • up to 24 GB
          – 1 to 5
   – Non-scaling
      • Memory-based design
                                      • Utility Function
                versus                       – Throughput and memory
        file-based design                      usage 10 times as important
      • JVM memory size                        as disk usage
            – up to 500 MB


                                 SBES 2007                                   27
Case Study
Preferences and Utility


• Throughput preference
 ∧        -1,            if x < 100
 t(x) =
           x – 100 ,     otherwise
          400 – 100


• Heap usage preference
 ∧        -1,            if y > 500
 h(y) =                                     • System utility
                                                                ∧        ∧       ∧
           500 – y   ,   otherwise                U(x,y,z) = 10 t(x) + 10 h(y) + d(z)
           500 – 0                                                      21


• Disk usage preference
 ∧        -1,            if z > 24
 d(z) =
           24 – z    ,   otherwise
           24 – 0

                                      SBES 2007                                      28
Case Study
Results




             SBES 2007   29
Case Study
Evaluation


• Advantages
   – Demonstrates applicability of framework
   – Could have saved time, effort and money for IEF
• Shortcoming: This was a retrospective analysis
   – The system was already implemented
   – The requirements were well-known
   – The metrics could be easily and reliably collected
   – But these results confirm those from an earlier study of
     simple prototypes developed in two weeks by Letícia
• Also difficult to assess analysis overhead
                            SBES 2007                           30
Conclusion
Summary


• Scalability is an important software quality
• But it is a quality that has been poorly
  characterised, defined, analysed and understood
• And it’s not just about performance!
• A proper characterisation of a system’s scalability
  should be qualified with reference to relevant
  independent and dependent variables
  – It’s meaningless just to say ‘System X is scalable’ or
    ‘System Y is not scalable’
  – Must say ‘System X is scalable with respect to
    throughput as the number of users varies over [i,j]’
                           SBES 2007                         32
Next Steps
Scalability Requirements


                  Where Do the
   Preference and Utility Functions Come From?

• Stakeholders …
   – Are able to identify important scalability variables
   – Like to think in terms of simple bounds on the variables
      • Rather than the underlying functions that relate them
   – Are usually poor at estimating those bounds
      • Typically underestimate system load and system lifetime
• Currently exploring Goal-Oriented Requirements
  Engineering for Scalability Requirements
                                SBES 2007                         33
Next Steps
Additional Issues


• More Case Studies and Interviews
   – Towards a broader understanding of scalability pitfalls
   – Letícia is doing many of these!
• Modelling Cost and Benefit in the Framework
• Prediction and Extrapolation
   – From models
      • Will there be enough information in formal models?
   – From small prototypes
      • Compression and expansion of test data subdomains




                               SBES 2007                       34
Obrigado!



             Questions?
             Perguntas?


http://www.cs.ucl.ac.uk/staff/D.Rosenblum/

Mais conteúdo relacionado

Mais procurados

Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
 
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...Ira Feldman
 
Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Ian Sommerville
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design DecisionsHenry Muccini
 
Terry.cooke davies
Terry.cooke daviesTerry.cooke davies
Terry.cooke daviesNASAPMC
 
The 2012 transition from dfm to pdfd leor nevo-intel
The 2012 transition from dfm to pdfd  leor nevo-intelThe 2012 transition from dfm to pdfd  leor nevo-intel
The 2012 transition from dfm to pdfd leor nevo-intelchiportal
 
Odum.t.averbeck.r
Odum.t.averbeck.rOdum.t.averbeck.r
Odum.t.averbeck.rNASAPMC
 
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013Ira Feldman
 
David.oberhettinger
David.oberhettingerDavid.oberhettinger
David.oberhettingerNASAPMC
 
Galorath.dan
Galorath.danGalorath.dan
Galorath.danNASAPMC
 

Mais procurados (12)

Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...
IEEE Semiconductor Wafer Test Workshop SWTW 2014 - International Technology R...
 
Engineering Test Rig
Engineering Test RigEngineering Test Rig
Engineering Test Rig
 
Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Lifecycle
LifecycleLifecycle
Lifecycle
 
Terry.cooke davies
Terry.cooke daviesTerry.cooke davies
Terry.cooke davies
 
The 2012 transition from dfm to pdfd leor nevo-intel
The 2012 transition from dfm to pdfd  leor nevo-intelThe 2012 transition from dfm to pdfd  leor nevo-intel
The 2012 transition from dfm to pdfd leor nevo-intel
 
Odum.t.averbeck.r
Odum.t.averbeck.rOdum.t.averbeck.r
Odum.t.averbeck.r
 
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013
Ideal 3D Stacked Die Test - IEEE Semiconductor Wafer Test Workshop SWTW 2013
 
David.oberhettinger
David.oberhettingerDavid.oberhettinger
David.oberhettinger
 
Galorath.dan
Galorath.danGalorath.dan
Galorath.dan
 

Destaque

Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)David Rosenblum
 
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)David Rosenblum
 
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)David Rosenblum
 
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...David Rosenblum
 
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)David Rosenblum
 
Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)David Rosenblum
 
Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)David Rosenblum
 
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...David Rosenblum
 
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...David Rosenblum
 
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)David Rosenblum
 
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...David Rosenblum
 
The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)David Rosenblum
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...David Rosenblum
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web ApplicationsDavid Mitzenmacher
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M usersJongyoon Choi
 
Маркетинг Центр
Маркетинг ЦентрМаркетинг Центр
Маркетинг Центрalladvertising
 
Sit down, speak out
Sit down, speak outSit down, speak out
Sit down, speak outJustin James
 

Destaque (20)

Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
High-Confidence Ubiquitous Computing Systems (invited talk at ISHCS 2011)
 
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
Some Open Problems in Publish/Subscribe Networking (keynote talk at DEBS 2003)
 
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...
 
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
Content-Based Publish/Subscribe: A Re-Assessment (keynote talk at DOA 2005)
 
Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)Whither Software Engineering Research? (keynote talk at APSEC 2012)
Whither Software Engineering Research? (keynote talk at APSEC 2012)
 
Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)Career Management (invited talk at ICSE 2014 NFRS)
Career Management (invited talk at ICSE 2014 NFRS)
 
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
Applications and Abstractions: A Cautionary Tale (invited talk at a DIMACS Wo...
 
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...
 
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
Probability and Uncertainty in Software Engineering (keynote talk at NASAC 2013)
 
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
Felicitous Computing (invited Talk for UC Irvine ISR Distinguished Speaker Se...
 
The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)The Power of Probabilistic Thinking (keynote talk at ASE 2016)
The Power of Probabilistic Thinking (keynote talk at ASE 2016)
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M users
 
Indices 07 mar2013053017
Indices 07 mar2013053017Indices 07 mar2013053017
Indices 07 mar2013053017
 
Маркетинг Центр
Маркетинг ЦентрМаркетинг Центр
Маркетинг Центр
 
Sit down, speak out
Sit down, speak outSit down, speak out
Sit down, speak out
 
Indices 09 oct2013073319
Indices 09 oct2013073319Indices 09 oct2013073319
Indices 09 oct2013073319
 
Indices 21 aug2013063741
Indices 21 aug2013063741Indices 21 aug2013063741
Indices 21 aug2013063741
 

Semelhante a How to Analyse Software System Scalability

Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 
Declare Victory with Big Data
Declare Victory with Big DataDeclare Victory with Big Data
Declare Victory with Big DataJ On The Beach
 
Cidr11 paper32
Cidr11 paper32Cidr11 paper32
Cidr11 paper32jujukoko
 
Megastore providing scalable, highly available storage for interactive services
Megastore providing scalable, highly available storage for interactive servicesMegastore providing scalable, highly available storage for interactive services
Megastore providing scalable, highly available storage for interactive servicesJoão Gabriel Lima
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systemshyun soomyung
 
Cost Based Performance Modelling
Cost Based Performance ModellingCost Based Performance Modelling
Cost Based Performance ModellingEugene Margulis
 
High Availability of Services in Wide-Area Shared Computing Networks
High Availability of Services in Wide-Area Shared Computing NetworksHigh Availability of Services in Wide-Area Shared Computing Networks
High Availability of Services in Wide-Area Shared Computing NetworksMário Almeida
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformDATAVERSITY
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtVincent Burckhardt
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of MicroservicesWesley Reisz
 
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...KumarSuman24
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability BpChris Adkin
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
 
Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU GrazWalid Maalej
 
Cyber Resiliency 20120420
Cyber Resiliency 20120420Cyber Resiliency 20120420
Cyber Resiliency 20120420Steve Goeringer
 

Semelhante a How to Analyse Software System Scalability (20)

Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
gfs-sosp2003
gfs-sosp2003gfs-sosp2003
gfs-sosp2003
 
gfs-sosp2003
gfs-sosp2003gfs-sosp2003
gfs-sosp2003
 
Gfs论文
Gfs论文Gfs论文
Gfs论文
 
The google file system
The google file systemThe google file system
The google file system
 
Declare Victory with Big Data
Declare Victory with Big DataDeclare Victory with Big Data
Declare Victory with Big Data
 
Cidr11 paper32
Cidr11 paper32Cidr11 paper32
Cidr11 paper32
 
Megastore providing scalable, highly available storage for interactive services
Megastore providing scalable, highly available storage for interactive servicesMegastore providing scalable, highly available storage for interactive services
Megastore providing scalable, highly available storage for interactive services
 
Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systems
 
Cost Based Performance Modelling
Cost Based Performance ModellingCost Based Performance Modelling
Cost Based Performance Modelling
 
www.ijerd.com
www.ijerd.comwww.ijerd.com
www.ijerd.com
 
High Availability of Services in Wide-Area Shared Computing Networks
High Availability of Services in Wide-Area Shared Computing NetworksHigh Availability of Services in Wide-Area Shared Computing Networks
High Availability of Services in Wide-Area Shared Computing Networks
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of Microservices
 
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
 
Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU Graz
 
Cyber Resiliency 20120420
Cyber Resiliency 20120420Cyber Resiliency 20120420
Cyber Resiliency 20120420
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

How to Analyse Software System Scalability

  • 1. Scalability: What It Is and How to Analyse It Escalabilidade: O Que É e Como Analisá-la Prof. David S. Rosenblum University College London United Kingdom http://www.cs.ucl.ac.uk/staff/D.Rosenblum/
  • 2. Acknowledgments • Letícia Duboc • Tony Wicks • Alex Wolf • Emmanuel Letier SBES 2007 2
  • 3. The Concept of Scalability
  • 4. The Importance of Scalability • Gartner predictions for 2008 – Moore’s Law continues to hold • Desktop PC: 4–8 CPUs @ 40GHz, 4–12GB RAM, 1.5TB storage, 100Gb network – Desktop PCs < 50% of end-user devices • Microsoft Research ‘Towards 2020 Science’ – The limits of Moore’s Law will soon be reached – Bandwidth is not keeping pace with storage capacity It is becoming ever more important for It is becoming ever more important for software systems to scale well! software systems to scale well! SBES 2007 4
  • 5. But What Is Scalability? ‘I examined aspects of scalability, but did not find a useful, rigorous definition of it. Without such a definition, I assert that calling a system “scalable” is about as useful as calling it “modern”. I encourage the technical community to either rigorously define scalability or stop using it to describe systems.’ Mark D. Hill, ‘What is Scalability?’, ACM SIGARCH Computer Architecture News, vol. 18, no. 4, December 1990, pp. 18-21. SBES 2007 5
  • 6. You Know It When You See It? • Many uses of the term in technical literature – Design documents – Research papers – Standards specifications – Product brochures • But very few precise definitions of the term – Notable exception: Parallel Computing SBES 2007 6
  • 7. Example Documentum ‘Scalability is a key requirement for the corporate content infrastructure, … [which] needs to be capable of handling high volumes of content as well as of fulfilling high performance requirements.’ SBES 2007 7
  • 8. Example Sun Microsystems ‘The Java 2 Platform, Micro Edition (J2ME) technology from Sun Microsystems, Inc. is used by developers to scale Java technology-based applications into small consumer and embedded devices.’ SBES 2007 8
  • 9. Example SAP Specification Mark Handley, Colin Perkins and Edmund Whelan, Session Announcement Protocol, RFC 2974, October 2000. • 5500 Words, Including 3 Occurrences of ‘Scalability’: – Abstract: ‘This document describes version 2 of the multicast session directory announcement protocol, Session Announced Protocol (SAP), and the related issues affecting security and scalability that should be taken into account by implementors.’ – Section on Terminology: ‘A SAP announcer periodically multicasts an announcement packet to a well known multicast address and port. The announcement is multicast with the same scope as the session it is announcing, ensuring that the recipients of the announcement are within the scope of the session the announcement describes (bandwidth and other such constraints permitting). This is also important for the scalability of the protocol, as it keeps local session announcements local.’ – Section Heading: ‘Scalability and Caching’ SBES 2007 9
  • 10. For the Record • I’m just as guilty … Antonio Carzaniga, David S. Rosenblum and Alexander L. Wolf, ‘Achieving Scalability and Expressiveness in an Internet-Scale Event Notification Service’, Proc. Nineteenth ACM Symposium on Principles of Distributed Computing (PODC 2000), Jul. 2000, pp. 219–227. • No precise, explicit definition of scalability • Scalability by implication – Scalability of publish/subscribe infrastructure is related to choice of subscription language – Certain language features are not scalable – Thus, languages without those features are scalable!?! SBES 2007 10
  • 11. Some Typical Notions of Scalability (1) • High Performance – Computations/messages/transactions per second – Fixed-size and fixed-time parallel speedup • Computational Complexity – Time and space complexity of algorithms • Polynomial is scalable • Exponential isn’t • Abstraction – Programmer productivity as a function of the expressive power of programming languages SBES 2007 11
  • 12. Some Typical Notions of Scalability (2) • Software Tools – Testing considered more scalable than verification – State space explosion in model checking • Competing techniques compared in terms of state space size • Symmetries exploited to improve scalability – Effect of analysis precision on scalability • Is a bug-finding tool that scales to millions of lines of code ‘scalable’ if it identifies thousands of potential bugs? – What about the ‘scalability’ of the developer effort in analysing those bug reports? SBES 2007 12
  • 13. Some Typical Notions of Scalability (3) Charles B. Weinstock and John B. Goodenough, On System Scalability, technical note CMU/SEI-2006-TN-012, Software Engineering Institute, March 2006. • Two main uses of the term scalability: – The ability to handle increased workload without adding resources to a system – The ability to handle increased workload by repeatedly applying a cost-effective strategy for extending a system’s capacity • To which we might add … – The ability to handle existing workload better by extending a system’s capacity SBES 2007 13
  • 14. Some Definitions ‘Scalability: the ease with which a system or component can be modified to fit the problem area.’ [Software Engineering Institute] – What do ‘ease’ and ‘fit’ mean? ‘Scalability means not just the ability to operate, but to operate efficiently and with adequate quality of service, over the given range of configurations.’ [Jogalekar and Woodside] – What do ‘efficiently’ and ‘adequate’ mean? ‘An architecture is scalable … if it has a … linear (or sub-linear) increase in physical resource usage as capacity increases.’ [Brataas and Hughes] – Why linear? – What about quicksort, with O(n log n) average case and O(n2) worst case? SBES 2007 14
  • 15. A Framework for Characterising and Analysing Scalability
  • 16. An Attempt to Unify These Ideas Leticia Duboc, David S. Rosenblum and Tony Wicks, A Framework for Characterization and Analysis of Software System Scalability, Proc. ESEC/FSE 2007, Dubrovnik, Croatia, September 2007. • Scalability is a quality of software systems … – characterized by the operational impact … – that characteristics of the execution environment and design have … – on measured system qualities … – as the characteristics are varied … – over expected ranges and/or alternatives • If a software system can accommodate this variation in a way that is acceptable to stakeholders, then it is a scalable system. SBES 2007 16
  • 17. Example Google Search Engine • Most people would agree that Google is scalable – Dramatic growth in the size of the Web – Dramatic growth in the rate of queries to Google – Yet a virtually constant response time for users • Naturally parallelisable problem – Implemented as a cluster of commodity PCs – Cluster increased as Web and query load increase – Note that this is an instance of the second of Weinstock and Goodenough’s two uses of the term scalability SBES 2007 17
  • 18. The Scalability Framework As Exemplified by Google Scalability Goal/Question design characteristics identify and bound environment and scaling non-scaling design environment size of network system execution Web latency response queries per available system time second bandwidth Can Google provide constant response time as the number of behaviour I/O usage govern determine queriescluster second of the number of Web pages increase per choice and price per size algorithms over time? performance system and bound qualities identify Scalability Answer/Claim SBES 2007 18
  • 19. The Scalability Framework In Terms of Experimental Design Scalability Goal/Question identify identify and bound and bound scaling non-scaling distinct design environment behaviours system execution system behaviour dependent independent variables govern determine variables implementation or model nuisance variables measure factors manipulate raw data over ranges Scalability Analysis Scalability Answer/Claim SBES 2007 19
  • 20. The Scalability Framework In Terms of Microeconomics Scalability Goal/Question identify identify and bound and bound scaling non-scaling distinct design environment behaviours system execution system behaviour dependent independent variables govern determine variables implementation or model nuisance variables measure preference functions factors manipulate raw data over range Scalability Analysis utility function Scalability Answer/Claim SBES 2007 20
  • 21. The Scalability Framework As Exemplified by Google Once More Scalability Goal/Question identify identify and bound and bound scaling non-scaling Google is scalable with respect tobehaviours response time distinct design environment system execution system because it maintains a independent constant response time as the behaviour dependent variables govern determine variables number of queriesorper second model implementation and the number of Web pages scale over time, nuisance variables measure factors manipulate raw data over range by increasing the number of machines in the cluster preference functions Scalability Analysis utility function Scalability Answer/Claim SBES 2007 21
  • 22. Scalability Analysis • Scalability as a multi-criteria optimization problem • Scalability as a matter of stakeholders’ interest preference function preference quantified combined utility scalability as function into function goals preference function quantify satisfaction quantify with goals for overall individual satisfaction system qualities with system SBES 2007 22
  • 23. Preferences, Utilities and Pareto Optimality • Preference for quality j pj : X j → R • Normalized preference ∧ pj (Xj) − pj,min pj (Xj) = pj,max − pj,min • Utility function ∧ ∧ U(X1,…,Xk) = λ1p1(X1) + … + λkpk(Xk) • Preferences often compete, in the sense that improving one often degrades another – Example: tradeoff between throughput and message buffer size – This is called Pareto Optimality SBES 2007 23
  • 25. Case Study Fortent Data Analysis System • Intelligent Enterprise Framework (IEF) – Overnight analysis of transactional data to identify unusual and possibly fraudulent patterns of bank and credit card transactions – Java - 1,556 classes - 326,293 lines of code • Surrogate Key Server (SKS) Component BE BE BE SK SK SK BE BE BE replace business SK SK SK entity identifiers BE BE BE SK SK SK BE BE BE BE SK SK SK SK BE SK batches of BE SK injected transactions on surrogate keys business entities entity-key mapping SBES 2007 25
  • 26. Case Study SKS Implementation Details • Early implementation (year 2000) – In-memory cache – High storage overhead, eventually crashing system • Replaced with – In-memory cache for low-volume business entities – File-based cache for high-volume business entities • Scalability concern: support a growing number of business entities in overnight batches, while maintaining throughput and memory usage within acceptable levels SBES 2007 26
  • 27. Case Study Framework Instantiation • Independent Variables • Dependent Variables – Scaling – Average throughput • Number of distinct business • minimum 100 transactions/sec entities – Memory usage – 36.6 million average • up to 500 MB – 50 million maximum – Disk usage • Number of threads • up to 24 GB – 1 to 5 – Non-scaling • Memory-based design • Utility Function versus – Throughput and memory file-based design usage 10 times as important • JVM memory size as disk usage – up to 500 MB SBES 2007 27
  • 28. Case Study Preferences and Utility • Throughput preference ∧ -1, if x < 100 t(x) = x – 100 , otherwise 400 – 100 • Heap usage preference ∧ -1, if y > 500 h(y) = • System utility ∧ ∧ ∧ 500 – y , otherwise U(x,y,z) = 10 t(x) + 10 h(y) + d(z) 500 – 0 21 • Disk usage preference ∧ -1, if z > 24 d(z) = 24 – z , otherwise 24 – 0 SBES 2007 28
  • 29. Case Study Results SBES 2007 29
  • 30. Case Study Evaluation • Advantages – Demonstrates applicability of framework – Could have saved time, effort and money for IEF • Shortcoming: This was a retrospective analysis – The system was already implemented – The requirements were well-known – The metrics could be easily and reliably collected – But these results confirm those from an earlier study of simple prototypes developed in two weeks by Letícia • Also difficult to assess analysis overhead SBES 2007 30
  • 32. Summary • Scalability is an important software quality • But it is a quality that has been poorly characterised, defined, analysed and understood • And it’s not just about performance! • A proper characterisation of a system’s scalability should be qualified with reference to relevant independent and dependent variables – It’s meaningless just to say ‘System X is scalable’ or ‘System Y is not scalable’ – Must say ‘System X is scalable with respect to throughput as the number of users varies over [i,j]’ SBES 2007 32
  • 33. Next Steps Scalability Requirements Where Do the Preference and Utility Functions Come From? • Stakeholders … – Are able to identify important scalability variables – Like to think in terms of simple bounds on the variables • Rather than the underlying functions that relate them – Are usually poor at estimating those bounds • Typically underestimate system load and system lifetime • Currently exploring Goal-Oriented Requirements Engineering for Scalability Requirements SBES 2007 33
  • 34. Next Steps Additional Issues • More Case Studies and Interviews – Towards a broader understanding of scalability pitfalls – Letícia is doing many of these! • Modelling Cost and Benefit in the Framework • Prediction and Extrapolation – From models • Will there be enough information in formal models? – From small prototypes • Compression and expansion of test data subdomains SBES 2007 34
  • 35. Obrigado! Questions? Perguntas? http://www.cs.ucl.ac.uk/staff/D.Rosenblum/

Notas do Editor

  1. As in any kind of analysis you are trying to answer a question We represent this question in terms of preferences and utility functions, which I ’ll explain it later. As I have mentioned scalability always have to do with the scaling or variation of application domain or machine design characteristics. We call those independent variables, which are variables that can be manipulated on the analysis. Note that not all variables will vary, therefore we further subdivide them into scaling and non-scaling. Other variables may affect scalability, but we have no control of them. We call them nuisance variables. - Experimental design to reveal the causal relationship Factors Dependent variables The analysis of dependent variables in the presence of the variation of certain factors turn an ordinary quality analysis into a scalability analysis And thus it is vague to refer simply to “the scalability of a system”; instead one must refer to “the scalability with respect to throughput”, or “the scalability with respect to latency and memory consumption”. Scalability analysis should unveil this relationship in a explicit and continuous form Any system analysis conducted with respect to a variation over a range of environmental or design qualities is a scalability analysis Performance, reliability, availability, security, etc.
  2. As in any kind of analysis you are trying to answer a question We represent this question in terms of preferences and utility functions, which I ’ll explain it later. As I have mentioned scalability always have to do with the scaling or variation of application domain or machine design characteristics. We call those independent variables, which are variables that can be manipulated on the analysis. Note that not all variables will vary, therefore we further subdivide them into scaling and non-scaling. Other variables may affect scalability, but we have no control of them. We call them nuisance variables. - Experimental design to reveal the causal relationship Factors Dependent variables The analysis of dependent variables in the presence of the variation of certain factors turn an ordinary quality analysis into a scalability analysis And thus it is vague to refer simply to “the scalability of a system”; instead one must refer to “the scalability with respect to throughput”, or “the scalability with respect to latency and memory consumption”. Scalability analysis should unveil this relationship in a explicit and continuous form Any system analysis conducted with respect to a variation over a range of environmental or design qualities is a scalability analysis Performance, reliability, availability, security, etc.
  3. As in any kind of analysis you are trying to answer a question We represent this question in terms of preferences and utility functions, which I ’ll explain it later. As I have mentioned scalability always have to do with the scaling or variation of application domain or machine design characteristics. We call those independent variables, which are variables that can be manipulated on the analysis. Note that not all variables will vary, therefore we further subdivide them into scaling and non-scaling. Other variables may affect scalability, but we have no control of them. We call them nuisance variables. - Experimental design to reveal the causal relationship Factors Dependent variables The analysis of dependent variables in the presence of the variation of certain factors turn an ordinary quality analysis into a scalability analysis And thus it is vague to refer simply to “the scalability of a system”; instead one must refer to “the scalability with respect to throughput”, or “the scalability with respect to latency and memory consumption”. Scalability analysis should unveil this relationship in a explicit and continuous form Any system analysis conducted with respect to a variation over a range of environmental or design qualities is a scalability analysis Performance, reliability, availability, security, etc.
  4. As in any kind of analysis you are trying to answer a question We represent this question in terms of preferences and utility functions, which I ’ll explain it later. As I have mentioned scalability always have to do with the scaling or variation of application domain or machine design characteristics. We call those independent variables, which are variables that can be manipulated on the analysis. Note that not all variables will vary, therefore we further subdivide them into scaling and non-scaling. Other variables may affect scalability, but we have no control of them. We call them nuisance variables. - Experimental design to reveal the causal relationship Factors Dependent variables The analysis of dependent variables in the presence of the variation of certain factors turn an ordinary quality analysis into a scalability analysis And thus it is vague to refer simply to “the scalability of a system”; instead one must refer to “the scalability with respect to throughput”, or “the scalability with respect to latency and memory consumption”. Scalability analysis should unveil this relationship in a explicit and continuous form Any system analysis conducted with respect to a variation over a range of environmental or design qualities is a scalability analysis Performance, reliability, availability, security, etc.
  5. A solution that maximizes all objectives may not exist Utility against the full range of scaling dimension Shows the causal relationship between these dimensions and the system behaviour
  6. Surrogate Key Server is critical subsystem.
  7. This is a retrospective study Call attention to multi-criteria trade off: memory vs throughput
  8. In hindsight, the file-based design may appear to be obviously superior to the memory-based design, but this was not at all obvious when the memory-based design was first developed. In fact, if the designs had been compared only in terms of the load at the time the memory-based system was first being developed, then the memory-based design would have been selected instead of the file-based design. Only by doing a proper analysis over the full range of the scaling dimensions are we able to select the most scalable design.