CloudScale Knowledge Wiki

From CloudScale
(Redirected from Wiki/)
Jump to: navigation, search
Welcome to the CloudScale Knowledge Wiki!
You can follow results on scalability knowledge of the project from this wiki site.
Learn more about CloudScale at the project's web site
CloudScale.png

CloudScale is a Framework Programme Seven (FP7) European Commission funding technological project, aiming to aid service providers in analysing, predicting and resolving scalability issues, i.e., support scalable service engineering.

The project extends existing and develops new solutions that support the handling of scalability problems of software-based services.

CloudScale's HowTos provide best practices for designing and analyzing scalable SaaS applications. In the following table, we list and describe the collected HowTos.

Name/Link Context* ATs
Loadbalancing An architecture utilizing load balancers. 2
Dynamic Horizontal Scaling An architecture utilizing horizontal scaling. 2
Dynamic Vertical Scaling An architecture utilizing vertical scaling. 1
Simplified SPOSAD A 3-layer architecture that requires scalable middle and data layers. 1
SPOSAD A 3-layer architecture that requires scalable middle, data layers, and multi-tenancy. 1
Static Content Specific purpose deployment to handle static content 0
Sharding Separating data into storage partitions. 0
MapReduce Process large data sets by distributing processing nodes 1
Multi-tenancy Request Admission General method to enable tenant individual scalability. 0
Multi-tenancy Resource Control A method to guarantee each tenant a defined portion of resources. 0
Tenant Isolation Architecture Architecture to create scenario specific scalability/performance isolation methods. 0

Our common ontology for topics related to performance, scalability, elasticity, and efficiency of software architectures.

Date Title*
2013-08 Palladio Workshop
2014-04 Quality Analysis Lab
2014-10 ScaleDL Overview - 2nd Draft
2015-12 The CloudScale Method: A White Paper
2016-01 The CloudScale Environment User Guide

While patterns provide proven solutions with positive effects, anti-patterns record those solutions with negative consequences. Anti-patterns show software engineers what to avoid as well as solutions. In the following table, we list the anti-patterns we collect.

Name/Link Context* Suggested Solutions (Scalability HowTos)
One-Lane Bridge A One Lane Bridge occurs, if a passive resource limits the concurrency in an application. Passive resources can be for instance mutexes, connection pools, or database locks. a) Loadbalancing

b) Dynamic Horizontal Scaling

c) Dynamic Vertical Scaling

d) MapReduce

The Blob The Blob occurs when one class performs most of the system work relegating other classes to minor, supporting roles. a) Loadbalancing

b) Dynamic Horizontal Scaling

c) Dynamic Vertical Scaling

d) MapReduce

The Stifle The Stifle occurs if single database statements changing the data are executed for the same table in a loop instead in a batch.
Empty Semi Trucks The Empty Semi Trucks occurs in software systems where a big amount of requests is needed for a single job. a) Data Transfer Object
Excessive Dynamic Allocation The Excessive Dynamic Allocation occurs in object-oriented software systems s when dynamic allocations are needed. a) Resource Pooling
Application Hiccups Application Hiccups represents the problem of periodically violated performance requirements.
Continuously Violated Requirement Checks if performance requirements are violated continuously under high load.
DB Congestion If a high utilization of the database CPU is observed, or any tables of the database are excessively locked, then we observe Database Congestion.
Expensive Database Call Expensive Database Calls are single, long-running database request. They cause high overhead at the database, either due to high locking times, many locks, or high utilization of the database's resources.
Excessive Messaging Excessive Messaging describes a situation in which at least two remote nodes exchange a high number of messages. It is manifested in a high communication overhead on the network induced by inter-component communication of distributed software components.
The Ramp The ramp occurs when processing time increases as the system is used.
Traffic Jam Traffic Jam represents a scalability problem, either due to software bottlenecks or hardware limitations.