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.
207 questions
161
votes
4 answers

why are noSQL databases more scalable than SQL?

Recently I read a lot about noSQL DBMSs. I understand CAP theorem, ACID rules, BASE rules and the basic theory. But didn't find any resources on why is noSQL scalable more easily than RDBMS (e.g. in case of a system that requires lots of DB…
ducin
  • 1,729
  • 3
  • 11
  • 7
42
votes
8 answers

What is the best way to design a web site to be highly scalable?

For websites that need to be highly scalable, such as social networks like facebook, what's the best way to design the website? Should I have a web service which the site queries to get data that it needs? or Should the site query databases…
Daniel
  • 541
  • 1
  • 5
  • 7
38
votes
2 answers

How to design a scalable notification system?

I need to write a notification system manager. Here is my requirements: I need to be able to send a Notification on different platforms, which may be totally different (for exemple, I need to be able to send either an SMS or an E-mail). Sometimes…
35
votes
10 answers

Am I right that switching programming languages will have little impact on the scalability of a CRUD API?

An external consultant to our team advised us to rewrite our SaaS offering (essentially a CRUD API) in .NET because this is more "scalable" than using Node.js (or Ruby on Rails, Flask, etc.). By that they seem to mean that a backend API written in…
Vincent
  • 544
  • 4
  • 8
34
votes
6 answers

At what size of data does it become beneficial to move from SQL to NoSQL?

As a relational database programmer (most of the time), I read articles about how relational databases don't scale, and NoSQL solutions such as MongoDB do. As most of the databases I have developed so far have been small to mid scale, I have never…
wobbily_col
  • 1,861
  • 3
  • 16
  • 25
32
votes
3 answers

What does Douglas Crockford mean when he says jQuery doesn't scale?

In the Q&A section of this talk, Douglas Crockford says that jQuery doesn't scale as well as some other popular libraries. What does he mean by that, and what is it about the other libraries that makes them more scalable?
Tyler
  • 873
  • 8
  • 16
30
votes
4 answers

How does a company like Amazon avoid bottlenecks accessing the database layer?

If you imagine a company like Amazon (or any other large e-commerce web application), that is operating an online store at massive scale and only has limited quantity of physical items in its warehouses, how can they optimize this such that there is…
26
votes
1 answer

Designing an scalable message queue architecture

I have recently started learning the nuances of scalable and enterprise computer architecture, and one of the central components is a messaging queue. In order to learn the most I can from any programming paradigm, I am trying to implement my own…
topherg
  • 561
  • 1
  • 4
  • 11
23
votes
5 answers

How can I manage trash users?

I created a system which hopefully will have many users. We are afraid our user database will be filled by "trash users" which take high-demand usernames, or maybe they just register and never come back. I know this is common, I do this myself, as I…
yozawiratama
  • 341
  • 1
  • 5
23
votes
2 answers

Internal-use websites: Is there a compelling case against SQLite?

Many web frameworks, such as Flask or Django use SQLite as their default database. SQLite is compelling because it's included in python, and administrative overhead is pretty low. However, most high traffic public production sites wind up using a…
Mike Pennington
  • 404
  • 3
  • 11
23
votes
5 answers

Is BDD scalable for medium to large projects?

In every Website you read about BDD (Behaviour Driven Development) you find a very simple nice example showing you how obvious and easy is it to define your requirements. But trying to implement this process in a big product (not a calculator…
D.D
  • 489
  • 6
  • 19
22
votes
5 answers

Fighting technical debt as the "lowest developer"?

Let's say you work for a company and what you do is develop software for them. You have no idea of the big picture or maybe slight. What you do have are tasks assigned to you via issue tracking system. You're given tasks, you make them work the way…
22
votes
2 answers

How is software scalability measured?

I was asked to make some small technical presentation about specific application scalability. The application is developed using Java, Spring MVC, Hibernate. I have access to the application source code. How can I measure software scalability (using…
artjom
  • 674
  • 2
  • 7
  • 14
21
votes
3 answers

Does Node.js actually increase scalability?

I've been reading about the C10K Problem, and of particular note is the part that refers to asynchronous server I/O. http://www.kegel.com/c10k.html#aio I believe this pretty much summarises what Node.js does on the server, by allowing threads to…
Alex
  • 361
  • 1
  • 2
  • 8
20
votes
8 answers

Dangers of huge monolithic application

The big project I'm working on for a couple years now is a control (and everything) application of an advanced device, heart of its firmware. The device is quite advanced, with more different functionalities than I could say from memory, and 98% of…
SF.
  • 5,078
  • 2
  • 24
  • 36
1
2 3
13 14