Database Reference
In-Depth Information
Table 1-1. Performance Figures for Typical Actions Provided by a Web Shop
Max. Response Time (s)
Max. Arrival Rate (trx/min)
Action
90%
99.99%
0-7
8-23
Register/change profile
2
5
1
2
Sign in/sign out
0.5
1
5
20
Search products
1
2
60
240
Display product overview
1
2
30
120
Display product details
1.5
3
10
36
Add/update/remove product in/from cart
1
2
4
12
Show cart
1
3
8
32
Submit/confirm order
1
2
2
8
Show orders
2
5
4
16
These performance requirements are not only essential throughout the next phases of application development
(as you will see in the following sections), but later you can also use them as the basis for defining service level
agreements and for capacity-planning purposes.
SerVICe LeVeL aGreeMeNtS
a service level agreement (sla) is a contract defining a clear relationship between a service provider and a
service consumer. It describes, among others things, the provided service, its level of availability regarding uptime
and downtime, the response time, the level of customer support, and what happens if the provider is not able to
fulfill the agreement.
Defining service level agreements with regard to response time makes sense only if it is possible to verify their
fulfillment. they require the definition of clear and measurable performance figures and their associated targets.
these performance figures are commonly called key performance indicators (KpI). Ideally a monitoring tool is
used to gather, store, and evaluate them. In fact, the idea is not only to flag when a target is not fulfilled but
also to keep a log for reporting and capacity-planning purposes. to gather these performance figures, you can
use two main techniques. the first takes advantage of the output of instrumentation code (see Chapter 2 for
more information). the second one is to use a response-time monitoring tool (see the section “response-time
monitoring” later in this chapter).
Analysis and Design
Based on the requirements, the architects are able to design a solution. At the beginning, for the purpose of defining the
architecture, considering all requirements is essential. In fact, an application that has to handle a high workload must be
designed from the beginning to achieve this requirement. This is especially the case if techniques such as parallelization,
distributed computing, or reutilization of results are implemented. For example, designing a client/server application
aimed at supporting a few users performing a dozen transactions per minute is quite different from designing a
 
Search WWH ::




Custom Search