Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...Amazon Web Services
Get a look under the hood: Understand how to take advantage of Amazon Redshift's columnar technology and parallel processing capabilities to improve your delivery of queries and improve overall database performance. You’ll also hear about how the University of Technology Sydney (UTS) are using Redshift. The University of Technology Sydney will describe how utilizing Amazon Redshift enabled agility in dealing with Data Quality, a capacity to scale when required, and optimizing development processes through rapid provisioning of Data Warehouse environments.
Speaker: Ganesh Raja, Solutions Architect, Amazon Web Services with Susan Gibson, Manager, Data and Business Intelligence, UTS
Level: 300
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021StreamNative
Apache Pulsar is used for various streaming use cases. There is a strong requirement for storing checkpoints while processing the stream in Pulsar Functions, so that in case of any interruption stream processing engine could go back to the last checkpoint.
Pulsar uses Zookeeper not only for leader elections or service discovery like critical use cases but also for storing various metadata which puts unnecessary load on zookeeper which hampers mission critical use of Zookeeper.
A durable key value store based off of the Apache Pulsar ecosystem addresses the above mentioned use cases nicely.
This talk focuses on taking existing Apache Bookkeeper Table Service/State store implementation and taking it to production. Furthermore this talk also touches upon contributing all the features, bug fixes, tools and other improvements back to open source.
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...Amazon Web Services
Get a look under the hood: Understand how to take advantage of Amazon Redshift's columnar technology and parallel processing capabilities to improve your delivery of queries and improve overall database performance. You’ll also hear about how the University of Technology Sydney (UTS) are using Redshift. The University of Technology Sydney will describe how utilizing Amazon Redshift enabled agility in dealing with Data Quality, a capacity to scale when required, and optimizing development processes through rapid provisioning of Data Warehouse environments.
Speaker: Ganesh Raja, Solutions Architect, Amazon Web Services with Susan Gibson, Manager, Data and Business Intelligence, UTS
Level: 300
Apache BookKeeper State Store: A Durable Key-Value Store - Pulsar Summit NA 2021StreamNative
Apache Pulsar is used for various streaming use cases. There is a strong requirement for storing checkpoints while processing the stream in Pulsar Functions, so that in case of any interruption stream processing engine could go back to the last checkpoint.
Pulsar uses Zookeeper not only for leader elections or service discovery like critical use cases but also for storing various metadata which puts unnecessary load on zookeeper which hampers mission critical use of Zookeeper.
A durable key value store based off of the Apache Pulsar ecosystem addresses the above mentioned use cases nicely.
This talk focuses on taking existing Apache Bookkeeper Table Service/State store implementation and taking it to production. Furthermore this talk also touches upon contributing all the features, bug fixes, tools and other improvements back to open source.
Playing Flappy Bird by Deep Reinforcement Learning in Keras, A deep learning library in python and optimizing the network using techniques like Experience Replay.
Amazon RDS with Amazon Aurora | AWS Public Sector Summit 2016Amazon Web Services
This session provides the attendee with an overview of Amazon RDS across different database types and then dives deep into the benefits and performance of Amazon Aurora.
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
Modeling Data and Queries for Wide Column NoSQLScyllaDB
Discover how to model data for wide column databases such as ScyllaDB and Apache Cassandra. Contrast the differerence from traditional RDBMS data modeling, going from a normalized “schema first” design to a denormalized “query first” design. Plus how to use advanced features like secondary indexes and materialized views to use the same base table to get the answers you need.
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
Come see how easy it is to build fast, accurate, and responsive web UIs using the React library. Even if you’ve never written Javascript before, React’s straightforward syntax can get you started with your UI project quickly. In this session, you’ll learn about React’s declarative syntax and state representation, explore some of the basic components that are used to build sophisticated UIs, and leave with a foundational application you can continue to build on.
In JavaScript, almost "everything" is an object.
-Booleans can be objects (if defined with the new keyword)
-Numbers can be objects (if defined with the new keyword)
-Strings can be objects (if defined with the new keyword)
-Dates are always objects
-Maths are always objects
-Regular expressions are always objects
-Arrays are always objects
-Functions are always objects
-Objects are always objects
This tutorial will explain Responsive Website Designing.
Key Concepts: Responsive Web Design, Website Designing, Mobile is the Future, What is Responsive Web Designs?, Why do we need responsive web design?, Adoptive vs Responsive web designs, Key benefits of Responsive web designs, How does it work?, How you can implement Responsive Websites?, Frameworks, Demo
For more detail visit Tech Blog:
https://msatechnosoft.in/blog/
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Edureka!
This Edureka "Node.js tutorial" will help you to learn the Node.js fundamentals and how to create an application in Node.js. Node.js is an open-source, cross-platform JavaScript runtime environment for developing a diverse variety of server tools and applications. Below are the topics covered in this tutorial:
1) Client Server Architecture
2) Limitations of Multi-Threaded Model
3) What is Node.js?
4) Features of Node.js
5) Node.js Installation
6) Blocking Vs. Non – Blocking I/O
7) Creating Node.js Program
8) Node.js Modules
9) Demo – Grocery List Web Application using Node.js
Playing Flappy Bird by Deep Reinforcement Learning in Keras, A deep learning library in python and optimizing the network using techniques like Experience Replay.
Amazon RDS with Amazon Aurora | AWS Public Sector Summit 2016Amazon Web Services
This session provides the attendee with an overview of Amazon RDS across different database types and then dives deep into the benefits and performance of Amazon Aurora.
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
Modeling Data and Queries for Wide Column NoSQLScyllaDB
Discover how to model data for wide column databases such as ScyllaDB and Apache Cassandra. Contrast the differerence from traditional RDBMS data modeling, going from a normalized “schema first” design to a denormalized “query first” design. Plus how to use advanced features like secondary indexes and materialized views to use the same base table to get the answers you need.
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
Come see how easy it is to build fast, accurate, and responsive web UIs using the React library. Even if you’ve never written Javascript before, React’s straightforward syntax can get you started with your UI project quickly. In this session, you’ll learn about React’s declarative syntax and state representation, explore some of the basic components that are used to build sophisticated UIs, and leave with a foundational application you can continue to build on.
In JavaScript, almost "everything" is an object.
-Booleans can be objects (if defined with the new keyword)
-Numbers can be objects (if defined with the new keyword)
-Strings can be objects (if defined with the new keyword)
-Dates are always objects
-Maths are always objects
-Regular expressions are always objects
-Arrays are always objects
-Functions are always objects
-Objects are always objects
This tutorial will explain Responsive Website Designing.
Key Concepts: Responsive Web Design, Website Designing, Mobile is the Future, What is Responsive Web Designs?, Why do we need responsive web design?, Adoptive vs Responsive web designs, Key benefits of Responsive web designs, How does it work?, How you can implement Responsive Websites?, Frameworks, Demo
For more detail visit Tech Blog:
https://msatechnosoft.in/blog/
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Edureka!
This Edureka "Node.js tutorial" will help you to learn the Node.js fundamentals and how to create an application in Node.js. Node.js is an open-source, cross-platform JavaScript runtime environment for developing a diverse variety of server tools and applications. Below are the topics covered in this tutorial:
1) Client Server Architecture
2) Limitations of Multi-Threaded Model
3) What is Node.js?
4) Features of Node.js
5) Node.js Installation
6) Blocking Vs. Non – Blocking I/O
7) Creating Node.js Program
8) Node.js Modules
9) Demo – Grocery List Web Application using Node.js
Alcatel-Lucent Cloud: Network Functions Virtualization - The New Virtual Real...Alcatel-Lucent Cloud
Companies are facing cloud challenges; capacity expansion, commoditization, network and data center merging, network becoming a programmable platform, transformation at web speed. The answer is parallel scaling and the creation of the NFV Industry Group. NFV will greatly enhance the ability of "network applications" to elastically scale to meet changing demand patterns. Alcatel-Lucent is leading the way in this new reality.
Are you facing some, or all, of these challenges?
-Host Mobility (w/o stretching VLANs)
-Network Segmentation (w/o implementing MPLS)
-Roles-based Access Control (w/o end-to-end TrustSec)
-Common Policy for Wired and Wireless (w/o multiple tools)
Using Cisco technologies already available today, you can overcome these challenges and build an evolved Campus network to better meet your business objectives.
21st Century Service Oriented ArchitectureBob Rhubart
Service Oriented Architecture has evolved from concept to reality in the last decade. The right methodology coupled with mature SOA technologies has helped customers demonstrate success in both innovation and ROI. In this session you will learn how Oracle SOA Suite’s orchestration, virtualization, and governance capabilities provide the infrastructure to run mission critical business and system applications. And we’ll take a special look at the convergence of SOA & BPM using Oracle’s Unified technology stack.
(As presented by Samrat Ray at Oracle Technology Network Architect Day in Chicago, October 24, 2011.)
Stay productive while slicing up the monolithMarkus Eisele
Microservices-based architectures are in vogue. Over the last couple of years, we have learned how thought leaders implement them, and it seems like every other week we hear about how containers and platform-as-a-service offerings make them ultimately happen.
Tech Talent Night Copenhagen 11/22/17
https://greenticket.dk/techtalentnightcph
Presentation of Vincent Desveronnieres, Oracle at the TMT.CloudComputing'11 Warsaw conference organized in Warsaw, Poland on February 10th, 2011 by New Europe Events
Presentazione dello speech tenuto da Carmine Spagnuolo (Postdoctoral Research Fellow - Università degli Studi di Salerno/ ACT OR) dal titolo "Technology insights: Decision Science Platform", durante il Decision Science Forum 2019, il più importante evento italiano sulla Scienza delle Decisioni.
Siddhi: A Second Look at Complex Event Processing ImplementationsSrinath Perera
Today there are so much data being available from sources like sensors (RFIDs, Near Field Communication), web activities, transactions, social networks, etc. Making sense of this avalanche of data requires efficient and fast processing.
Processing of high volume of events to derive higher-level information is a vital part of taking critical decisions, and
Complex Event Processing (CEP) has become one of the most rapidly emerging fields in data processing. e-Science
use-cases, business applications, financial trading applications, operational analytics applications and business activity monitoring applications are some use-cases that directly use CEP. This paper discusses different design decisions associated
with CEP Engines, and proposes some approaches to improve CEP performance by using more stream processing
style pipelines. Furthermore, the paper will discuss Siddhi, a CEP Engine that implements those suggestions. We
present a performance study that exhibits that the resulting CEP Engine—Siddhi—has significantly improved performance.
Primary contributions of this paper are performing a critical analysis of the CEP Engine design and identifying
suggestions for improvements, implementing those improvements
through Siddhi, and demonstrating the soundness of those suggestions through empirical evidence.
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...David Rosenblum
talk presented in the Visions & Challenges Track of the ACM SIGSOFT 22nd International Symposium on the Foundations of Software Engineering (FSE 2014), Hong Kong, 20 November 2014; the paper won 2nd Prize in the track
Jogging While Driving, and Other Software Engineering Research Problems (invi...David Rosenblum
invited talk presented for the Distinguished Lecturer Series of the Department of Computer Science at the University of Illinois at Chicago, 10 April 2014
invited talk presented for the Distinguished Speaker Series of the Institute for Software Research (ISR) at the University of California, Irvine, 5 April 2013
SIGSOFT Impact Award: Reflections and Prospects (invited talk at SIGSOFT FSE ...David Rosenblum
Invited talk with Alexander L. Wolf upon receiving the first ACM SIGSOFT Impact Paper Award, at the 16th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ACM SIGSOFT FSE), 13 November 2008.
Assertions a Decade Later (invited talk at ICSE 2002)David Rosenblum
Invited talk upon receiving the 2002 ICSE Most Influential Paper Award for ICSE 1992, at the 24th International Conference on Software Engineering (ICSE 2002), 22 May 2002.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Essentials of Automations: Optimizing FME Workflows with Parameters
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
1. Software System Scalability:
Concepts and Techniques
David S. Rosenblum
University College London
United Kingdom
http://www.cs.ucl.ac.uk/staff/D.Rosenblum/
4. Scalability: A Widely Used Term
• The technical literature has many uses of the term
– Product brochures
– Research papers
– Design documents
– Standards specifications
• But there are very few precise definitions
ISEC 2009 4
5. A Typical 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’
ISEC 2009 5
6. The Problem
‘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, Dec. 1990, pp. 18-21.]
ISEC 2009 6
7. Does This Lack of Rigour Matter?
Publications with the word scalable or scalability
in the title
[source: Engineering Village 2]
2500
2000
1500
1980: Computer Architecture
P ublications
1000
1988: Neural Networks
500
0
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010
Year
ISEC 2009 7
8. Why Does It Matter to Software Engineering?
• Scalability is an important
multi-dimensional concern
– And engineers have difficulty
reasoning about multi-dimensionality!
• The dimensions exhibit
highly unpredictable trends
– And engineers have difficulty anticipating these trends!
• Growth in users, growth in capacity requirements
• New deployment needs (mergers, miniaturisation)
• Software engineers have only primitive, ad hoc
techniques to address scalability concerns
ISEC 2009 8
9. Some Typical Notions of Scalability
• Performance
– High throughput, low latency
• Parallel speedup
• Tractability of algorithms
– Polynomial versus Exponential
• Testing versus Verification
• State spaces in model checking
• Linear growth in resource usage
– What about quicksort???
ISEC 2009 9
10. Scalability of What?
• The running system?
• The software design?
• The number of users?
• Something else?
• All of the above???
ISEC 2009 10
12. So What Is Scalability?
• Scalability is a quality of a software system
characterising its ability …
– to satisfy its quality goals …
– to levels that are acceptable to its stakeholders …
– when characteristics of the execution environment …
– and the system design …
– vary over expected ranges.
Scalability is thus a meta-quality of other system qualities
ISEC 2009 12
13. A Scalability Framework
As a Form of Experimental Design
scaling non-scaling
design environment
system execution
system
behaviour dependent
independent
variables govern determine variables
system
qualities
environment and
design characteristics
ISEC 2009 13
14. 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
• It’s a naturally parallelisable problem
– Implemented as a cluster of commodity PCs
– Cluster increased as Web and query load increase
ISEC 2009 14
15. The Scalability Framework
As Exemplified by Google
scaling non-scaling
Google is scalable with respect to response time
design environment
size of network
system execution
Web latency
response
queries per available system time
second bandwidth
because it maintains a constant response
timeI/O usage
as the
behaviour
govern determine
cluster number of queries per second
choice of price per
size algorithms
and the number of Web pages scale over performance
time,
system
qualities
environment and
design characteristics
by increasing the number of machines in the cluster
ISEC 2009 15
17. 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
ISEC 2009 17
18. Case Study
SKS Implementation Details
• Scalability problem: support a growing number of
business entities in overnight batches, while
maintaining throughput and memory usage within
acceptable levels
• First Generation Design (year 2000)
– In-memory cache
– High storage overhead, eventually crashing system
• Second Generation Design (year 2003)
– Disk-based cache for high-volume business entities
– In-memory cache for low-volume business entities
ISEC 2009 18
19. Scalability of IEF’s SKS
Characterisation
scaling non-scaling
design environment
system execution
number of average
business throughput
entities system
behaviour
memory
memory govern determine usage
number cache vs
of disk cache
disk usage
threads JVM heap
size
system
qualities
environment and
design characteristics
ISEC 2009 19
20. Scalability of IEF’s SKS
Analysis in Terms of Microeconomics
scaling non-scaling
distinct
design environment
behaviours
system execution
number of average
business throughput
entities system
behaviour
manipulate memory
memory
over ranges govern new prototype determine usage
number cache vs vs
of disk cache old raw data
disk usage
implementation
threads
JVM size measure system
qualities
environment and
design characteristics
preference functions
t(), m(), d()
utility function
Design Comparison preference values
10t()+10m()+d()
ISEC 2009 20
21. 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
ISEC 2009 21
24. Where Do the Variables and Preferences and
Utilities Come From?
• They must come from system stakeholders
– Are able to identify important scalability variables
– But like to think in terms of simple bounds
• Rather than the underlying functions that relate them
– And are usually poor at estimating those bounds
• Typically underestimate system load and system lifetime
• Goal-Oriented Requirements Engineering can be
used to elicit Scalability Requirements
– KAOS Method [van Lamsweerde, Letier]
ISEC 2009 24
25. The Scalability Framework
In the Context of Requirements Engineering
Scalability
identify and bound Goals identify and bound
scaling non-scaling
design environment
system execution
system
behaviour dependent
independent
variables govern determine variables
ISEC 2009 25
26. Goal-Oriented Requirements Engineering
As Exemplified by IEF
Goal
Fraudulent Transactions Handled
AND-Refinement
Sub-Goal
Obstacle
Fraudulent Transactions Acted Upon
Fraudulent Transactions
Detected Quickly
Requirement nt Transactions Not
Expectation
Fraudule
Acted Upon Bank
… IT Team
…
Batch Processed Overnight
Obstacle Refinement
Agent
Too Many Alerts
IEF for IT Team Sub-Obstacle
Alert Generator
Agent
ISEC 2009 26
27. Scalability Requirements
• A scaling assumption is a goal specifying how
some quantity in the application domain is
assumed to vary over time or system variants
• A scalability goal is a goal specifying the required
levels of satisfaction under variations specified in
associated scalability assumptions
• A scalability obstacle is a condition where the load
imposed by a goal exceeds the capacity of the
agent assigned to the goal
We can use goal-obstacle analysis to elicit these
ISEC 2009 27
28. Goal-Obstacle Analysis of IEF
Batch Processed Overnight Scalability Obstacle
Scaling Assumption Scalability Requirement
Batch Siz
eIs Unbou Batch Processed Overnight for
Expected Batch Size Variation nded
Expected Batch Size Variation
Assumption Expected Batch Size Variation IEF
Instance of scaling assumption Number of transactions exceeds Alert Generator
Definition Over the next three years, daily Alert Generator processing speed
Resolution Tactic:
batches for all customers are expected to
Introduce scaling assumption
have between 50,000 and 300 million mitigates
transactions
Adapt Alert Generator
Processing Speed at Runtime
Resolution Tactic:
Dynamically adapt agent capacity
Accurate Batch Size Prediction Alert Generator Processing Speed
Above Maximum Predicted Batch Size
Fortent Bank IT Team
ISEC 2009 28
29. Goal-Obstacle Analysis Summary
• Can now elicit scalability requirements for
Goal-Oriented Requirements Engineering
– Identify the key independent and dependent variables
– Identify scalability obstacles
– Resolve scalability obstacles
– All precisely and quantitatively
• What’s Missing?
– Agent Load Feasibility Analysis
– Cost/Benefit Analysis of Obstacle
Resolutions
– Testing Scalability Requirements
ISEC 2009 29
31. Summary
• Scalability is an important software quality
• But it has been poorly understood
– And it’s not just about performance!
• A proper characterisation of a system’s scalability
must be qualified with reference to relevant
independent and dependent variables
• And these should be derived through a precise
elicitation of scalability requirements
ISEC 2009 31
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.
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.
Surrogate Key Server is critical subsystem.
This is a retrospective study Call attention to multi-criteria trade off: memory vs throughput
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.
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.
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.
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.