Database Scalability

Once you have designed your database, especially when supporting a web- or cloud-based solution, you need to be sure that it can grow if the business that the application supports is successful. Scalability is about ensuring that you can cope with many co

  • PDF / 783,374 Bytes
  • 19 Pages / 441 x 666 pts Page_size
  • 118 Downloads / 222 Views

DOWNLOAD

REPORT


Database Scalability

What the reader will learn: • that the number of concurrent users is one important aspect of scalability • and that volumes of data stored and accessed is also important, particularly in the era of Big Data • that scalability brings its own issues for DBAs, such as the cost and performance implications • that cloud computing’s “use when needed” model can be helpful in handling scaling issues • that there are many approaches to tackling scalability issues and that each has strengths and weaknesses

9.1

What Do We Mean by Scalability?

As with most chapters in this book we will start by defining what we mean by scalability. And, as with some other chapters there are several possible answers. Dictionary.com defines it as: the ability of something, especially a computer system, to adapt to increased demands.

But even this is debatable. In its literal sense scale can go up (increased demands), but it can go down. It is far from only computing that uses the term. Here is a definition from a paper in the healthcare area: The ability of a health intervention shown to be efficacious on a small scale and or under controlled conditions to be expanded under real world conditions to reach a greater proportion of the eligible population. But this is a database book, so let us narrow this down to what it means for database professionals. Even here, however, there are possible areas of confusion. P. Lake, P. Crowther, Concise Guide to Databases, Undergraduate Topics in Computer Science, DOI 10.1007/978-1-4471-5601-7_9, © Springer-Verlag London 2013

201

202

9

Database Scalability

Hoskins and Frank (2002) define scalability in terms of processing power: “the ability to retain performance levels when adding additional processors”

In this MSDN Dunmall and Clarke (2003) article about load testing, scalability is described in terms of: “. . . the number of concurrent users anticipated at peak load in production”

In the era of Big Data the focus is often more to do with the volumes of data that an organisation needs to store. This is 10-Gen’s take on scalability from their MongoDB website: Auto-sharding allows MongoDB to scale from single server deployments to large, complex multi-data center architectures.

In actual fact these three elements are often closely related: concurrent user count; processing loads; data volume. It is often the case that more data or users will cause more processing, for example. So, for this book, we will describe scalability as: The ability of a database system to continue to function well when more users or data are added.

We will split this chapter into two main parts as we first examine strategies for coping with increases in the number of users of a system, and then look at the alternative approaches to handling the growth of data being stored and queried.

9.2

Coping with Growing Numbers of Users

As with many Microsoft products, ease of use is a real plus-point for Access. Some relational database concepts are difficult for non-technical users, and yet people are able