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
1176
votes
29 answers

Does Django scale?

I'm building a web application with Django. The reasons I chose Django were: I wanted to work with free/open-source tools. I like Python and feel it's a long-term language, whereas regarding Ruby I wasn't sure, and PHP seemed like a huge hassle to…
Roee Adler
  • 31,157
  • 31
  • 99
  • 132
772
votes
10 answers

Difference between scaling horizontally and vertically for databases

I have come across many NoSQL databases and SQL databases. There are varying parameters to measure the strength and weaknesses of these databases and scalability is one of them. What is the difference between horizontally and vertically scaling…
London guy
  • 24,942
  • 40
  • 110
  • 169
185
votes
10 answers

How Scalable is SQLite?

I recently read this Question about SQLite vs MySQL and the answer pointed out that SQLite doesn't scale well and the official website sort-of confirms this, however. How scalable is SQLite and what are its upper most limits?
GateKiller
  • 68,419
  • 71
  • 167
  • 203
159
votes
9 answers

What is considered a good response time for a dynamic, personalized web application?

For a complex web application that includes dynamic content and personalization, what is a good response time from the server (so excluding network latency and browser rendering time)? I'm thinking about sites like Facebook, Amazon, MyYahoo, etc. …
Michael Bobick
  • 8,437
  • 5
  • 19
  • 13
149
votes
18 answers

How to write a scalable Tcp/Ip based server

I am in the design phase of writing a new Windows Service application that accepts TCP/IP connections for long running connections (i.e. this is not like HTTP where there are many short connections, but rather a client connects and stays connected…
Erik Funkenbusch
  • 90,480
  • 27
  • 178
  • 274
128
votes
7 answers

A beginner's guide to SQL database design

Do you know a good source to learn how to design SQL solutions? Beyond the basic language syntax, I'm looking for something to help me understand: What tables to build and how to link them How to design for different scales (small client APP to a…
ripper234
  • 202,011
  • 255
  • 600
  • 878
126
votes
12 answers

What is a "feature flag"?

High Scalability mentions feature flags here: 5 things toxic to scalability, "5. Lack of Feature Flags" What exactly are feature flags?
GurdeepS
  • 58,809
  • 95
  • 236
  • 371
125
votes
11 answers

WebRTC - scalable live stream broadcasting / multicasting

PROBLEM: WebRTC gives us peer-to-peer video/audio connections. It is perfect for p2p calls, hangouts. But what about broadcasting (one-to-many, for example, 1-to-10000)? Lets say we have a broadcaster "B" and two attendees "A1", "A2". Of course it…
igorpavlov
  • 3,196
  • 5
  • 25
  • 50
105
votes
2 answers

What does scale horizontally and scale vertically mean?

In a three layer architecture with the database on the fourth, what does scaling horizontally and scaling vertically mean?
satish
  • 2,311
  • 2
  • 21
  • 36
97
votes
2 answers

Caveats of select/poll vs. epoll reactors in Twisted

Everything I've read and experienced ( Tornado based apps ) leads me to believe that ePoll is a natural replacement for Select and Poll based networking, especially with Twisted. Which makes me paranoid, its pretty rare for a better technique or…
David
  • 16,423
  • 8
  • 63
  • 95
92
votes
8 answers

How/why do functional languages (specifically Erlang) scale well?

I have been watching the growing visibility of functional programming languages and features for a while. I looked into them and didn't see the reason for the appeal. Then, recently I attended Kevin Smith's "Basics of Erlang" presentation at…
Jim Anderson
  • 3,481
  • 2
  • 22
  • 20
91
votes
3 answers

Best way to store chat messages in a database?

I'm building a chat app and I want a full history off all messages ever sent in the chat conversation. At the moment I am storing each message as a single row in a table called 'messages'. I am aware that this table could grow huge as even small…
wilsonpage
  • 16,275
  • 19
  • 98
  • 144
87
votes
1 answer

Scaling Node.js

I'm fairly new to large-scale server-side development. I want to write a server using Node.js, but before I forge ahead I'd like to know what the general principles are for scaling node up to, say, 20 queries per second. The service I'm writing will…
nornagon
  • 14,011
  • 16
  • 68
  • 84
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
  • 251,934
  • 70
  • 517
  • 549
73
votes
10 answers

What is the difference between scalability and elasticity?

I've heard many people using both terms interchangeably. However, in my opinion there is difference between them: SCALABILITY - ability of a software system to process higher amount of workload on its current hardware resources (scale up) or on…
Miroslav Dzhokanov
  • 835
  • 1
  • 7
  • 8
1
2 3
99 100