Questions tagged [scalability]

Scalability is the ability of a system, network, or process, to handle growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.

Scalability is the capability to increase resources to yield a linear (ideally) increase in service capacity. The key characteristic of a scalable application is that additional load only requires additional resources rather than extensive modification of the application itself.

Although raw performance makes a difference in determining the number of users that an application can support, scalability and performance are two separate entities. In fact, performance efforts can sometimes be opposed to scalability efforts.
/msdn/

A system whose performance improves after adding hardware, proportionally to the capacity added, is said to be a scalable system. An algorithm, design, networking protocol, program, or other system is said to scale, if it is suitably efficient and practical when applied to large situations (e.g. a large input data set or a large number of participating nodes in the case of a distributed system). If the design fails when the quantity increases, it does not scale.
/wikipedia/

Scalability is a general quality that holds when the system continues to satisfy its requirements when various usage parameters are increased.

E.g., a file server might be scalable to a high number of users, or to very large files or very high capacity disks.

Scalability goals:

  • Performance under load
    This is a specific type of scalability goal dealing with the performance of the system at times when it is servicing many requests from many users.
  • Large data volume
    This is a specific type of scalability goal dealing with the ability for the system to handle large data sets. Operations should continue to be correct and efficient as data set size increases. Furthermore, the user interface should still be usable as the data presented to users increases in length.
2320 questions
82
votes
7 answers

Why NoSQL is better at "scaling out" than RDBMS?

I have read the following text in a technical blog discussing the advantages and disadvantages of NoSQL: "For years, in order to improve performance on database servers, database administrators have had to buy bigger servers as the database load…
xiaohan2012
  • 9,870
  • 23
  • 67
  • 101
80
votes
6 answers

Optimizing Kohana-based Websites for Speed and Scalability

A site I built with Kohana was slammed with an enormous amount of traffic yesterday, causing me to take a step back and evaluate some of the design. I'm curious what are some standard techniques for optimizing Kohana-based applications? I'm…
Sampson
  • 265,109
  • 74
  • 539
  • 565
75
votes
8 answers

what does O(N) mean

Possible Duplicate: What is Big O notation? Do you use it? Hi all, fairly basic scalability notation question. I recently recieved a comment on a post that my python ordered-list implimentation "but beware that your 'ordered set' implementation…
Fire Crow
  • 7,499
  • 4
  • 36
  • 35
73
votes
9 answers

Should I use EJB3 or Spring for my business layer?

My team is developing a new service oriented product with a web front-end. In discussions about what technologies we will use we have settled on running a JBoss application server, and Flex frontend (with possible desktop deployment using Adobe…
Justin Standard
  • 21,347
  • 22
  • 80
  • 89
73
votes
2 answers

What specifically makes Node.js more scalable than Apache?

To be honest I've not understood it completely yet - and I even do understand how Node.js works, as a single thread using the event model. I just don't get how this is better than Apache, and how it scales horizontally if it's single-threaded.
MaiaVictor
  • 51,090
  • 44
  • 144
  • 286
72
votes
9 answers

Ruby on Rails scalability/performance?

I have used PHP for awhile now and have used it well with CodeIgniter, which is a great framework. I am starting on a new personal project and last time I was considering what to use (PHP vs ROR) I used PHP because of the scalability problems I…
ryeguy
  • 65,519
  • 58
  • 198
  • 260
71
votes
4 answers

What does "scalability" mean?

I read many articles comparing programming languages. There is a word that comes often: scalability. I actually tried to look for a simple and clear explanation, but haven't found anything. Can you explain what the scalability term means?
Patto
  • 729
  • 1
  • 6
  • 4
67
votes
10 answers

What databases do the World Wide Web's biggest sites run on?

This question is meant to serve as a list of databases and their configurations that the major web sites use and would be a great reference for anyone thinking of scaling their web site to the size of Twitter, Facebook or even Google. Please keep…
niktech
  • 115
  • 1
  • 5
  • 12
65
votes
9 answers

How to design scalable applications?

How do you design/architect a scalable application? Any suggestion of books or websites that could help to understand how to scale out applications? Thanks
Martin
  • 39,309
  • 62
  • 192
  • 278
64
votes
11 answers

No PHP for large projects? Why not?

I've read a few posts where people have stated (not suggested, not discussed, not offered) that PHP should not be used for large projects. Being a primarily PHP developer, I ask two questions: What defines a "large project"? Why not? What are the…
jerebear
  • 6,503
  • 4
  • 31
  • 38
62
votes
6 answers

Can relational database scale horizontally

After some googling I have found: Note from mysql docs: MySQL Cluster automatically shards (partitions) tables across nodes, enabling databases to scale horizontally on low cost, commodity hardware to serve read and write-intensive workloads,…
Maksym
  • 4,434
  • 4
  • 27
  • 46
61
votes
22 answers

How are you taking advantage of Multicore?

As someone in the world of HPC who came from the world of enterprise web development, I'm always curious to see how developers back in the "real world" are taking advantage of parallel computing. This is much more relevant now that all chips are…
Todd Gamblin
  • 58,354
  • 15
  • 89
  • 96
56
votes
1 answer

Pros and Cons of Sticky Session / Session Affinity load blancing strategy?

One approach to high scalability is to use network load balancing to split processing load between several servers. One challenge that this approach presents is where servers are state aware - storing user state in a "session". One solution to…
urig
  • 16,016
  • 26
  • 115
  • 184
56
votes
9 answers

How scalable is Parse?

I've been considering using Parse.com's service for my backend, but I'm skeptical about its scalability. Can it really handle several thousand simultaneous users? If not, is their any good way transitioning away from it?
Rob Caraway
  • 3,856
  • 3
  • 30
  • 37
48
votes
7 answers

Why are Azure Resource Groups associated with a specific region?

I'm new to Azure architecture and am trying to understand why Azure Resource Groups, which are logical deployment buckets for applications built on Azure, are associated with a region when they are defined. At first I thought it was to provide…
Josh
  • 4,009
  • 2
  • 31
  • 46