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.
2237 questions
44
votes
3 answers

How many concurrent users can a web app built in Meteor.js handle?

We are building a web app which will be used during a contest to vote contestants and display real-time vote statistics on a central display. The contest will last 15 minutes and around 4000 users will be connecting to the web app in that lapse of…
francesco
  • 441
  • 1
  • 4
  • 4
42
votes
7 answers

Does Scala scale better than other JVM languages?

Here is the only way I know to ask it at the moment. As Understand it Scala uses the Java Virtual Machine. I thought Jruby did also. Twitter switched its middleware to Scala. Could they have done the same thing and used Jruby? Could they have…
johnny
  • 18,093
  • 48
  • 144
  • 235
40
votes
5 answers

How am I supposed to interpret the results from Apache's ab benchmarking tool?

Alright, I've searched everywhere and I can't seem to find a detailed resource online for how to interpret the results from Apache's ab server benchmarking tool. I've run several tests with what I thought were drastically different parameters, but…
Nick
  • 1,261
  • 2
  • 9
  • 27
39
votes
3 answers

Increasing PHP memory_limit. At what point does it become insane?

In a system I am currently working on, there is one process that loads large amount of data into an array for sorting/aggregating/whatever. I know this process needs optimising for memory usage, but in the short term it just needs to work. Given the…
Brenton Alker
  • 8,499
  • 2
  • 31
  • 37
38
votes
8 answers

AWS vs Heroku vs something else for scalable platform?

Considering you're a startup with no funds for own server farm. Which existing solution can give you a peace of mind that any sudden increase in traffic won't bring everything down. I know it's not just up to hardware, so we plan to have at least a…
Ska
  • 5,481
  • 9
  • 47
  • 67
37
votes
3 answers

socket: Too many open files (24) apache bench lighttpd

When I start Apache Bench test: ab -n 10000 -c 1300 http://domain.com/test.php I get error: socket: Too many open files (24) When i change to '-c 1000' it works fine. Because I can have more than 1000 concurrent users I would like to fix socket…
Tomasz Smykowski
  • 24,175
  • 51
  • 149
  • 222
35
votes
3 answers

Are there any REAL advantages to NoSQL over RDBMS for structured data on one machine?

So I've been trying hard to figure out if NoSQL is really bringing that much value outside of auto-sharding and handling UNSTRUCTURED data. Assuming I can fit my STRUCTURED data on a single machine OR have an effective 'auto-sharding' feature for…
jessedrelick
  • 867
  • 1
  • 8
  • 7
35
votes
1 answer

Celery and Django simple example

Let's take a simple Django example. app/models.py from django.db import models from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User) token =…
Teodor Scorpan
  • 838
  • 1
  • 9
  • 17
35
votes
8 answers

Extreme Sharding: One SQLite Database Per User

I'm working on a web app that is somewhere between an email service and a social network. I feel it has the potential to grow really big in the future, so I'm concerned about scalability. Instead of using one centralized MySQL/InnoDB database and…
Seun Osewa
  • 4,714
  • 2
  • 26
  • 31
34
votes
4 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
  • 3,604
  • 2
  • 23
  • 42
34
votes
7 answers

Conflict-free Replicated Data Types (CRDT) vs Paxos or Raft

When is it a good idea to use something like CRDT instead of paxos or raft?
Eric des Courtis
  • 4,317
  • 4
  • 21
  • 37
32
votes
3 answers

Stateless Object Oriented Programming vs. Functional Programming?

One of the prime reasons for the increasing shift in attention towards functional programming these days is the rise of multithreading/processing and the advantages of FP's focus on side-effect free, stateless computation in making scalability…
donalbain
  • 1,098
  • 15
  • 31
32
votes
6 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
  • 3,035
  • 2
  • 23
  • 40
32
votes
4 answers

Does the Thundering Herd Problem exist on Linux anymore?

Many linux/unix programming books and tutorials speak about the "Thundering Herd Problem" which happens when multiple threads or forks are blocked on a select() call waiting for readability of a listening socket. When the connection comes in, all…
jdkoftinoff
  • 2,351
  • 1
  • 17
  • 17
32
votes
8 answers

How do you scale HTTP server like Google?

I often marvel at how I can go to www.google.com, from anywhere in the world at any time, and get the returned page so fast. Sure, they compress their output and keep to a minimal design - that helps. But they must have millions of simultaneous hits…
Roark Fan
  • 662
  • 8
  • 9