Databases Reference
In-Depth Information
and changes in one layer don't cause problems with other layers. This means your
team can add new features without the need to sync all the layers.
NoSQL schema-less datasets usually refers to datasets that don't require predefined
tables, columns (with types), and primary-foreign key relationships. Datasets that
don't require these predefined structures are more adaptable to change. When you
first begin to design your system, you may not know what data elements you need.
NoSQL systems allow you to use new elements and associate the data types, indexes,
and rules to new elements when you need them, not before you get the data. As new
data elements are loaded into some NoSQL databases, indexes are automatically cre-
ated to identify this data. If you add a new element for PersonBirthDate anywhere in
a JSON or XML input file, it'll be added to an index of other PersonBirthDate ele-
ments in your database. Note that a range index on dates for fast sorting many still
need to be configured. To take this a step further, let's look at how specific NoSQL
data services can be more agile than an entire RDBMS .
NoSQL systems frequently deliver data services for specific portions of a large web-
site or application. They may use dozens of CPU s working together to deliver these ser-
vices in configurations that are designed to duplicate data for faster guaranteed
response times and reliability. The NoSQL data service CPU s are often dedicated to
these services and no other functions. As the requirements for performance and reli-
ability change, more CPU s can be automatically added to share the load, increase
response time, and lower the probability of downtime.
This architecture of using dedicated NoSQL servers to create highly tunable data
services is in sharp contrast to traditional RDBMS s that typically have hundreds or
thousands of tables all stored on a single CPU . Trying to create precise data service lev-
els for one service can be difficult if not impossible if you consider that some data ser-
vices will be negatively impacted by large query loads on other unrelated database
tables. NoSQL data architectures, when combined with distributed processing, allow
organizations to be more agile and resilient to the changing needs of businesses.
Our focus in this chapter is the impact of NoSQL database architecture on overall
software agility. But before we wrap up our discussion of defining agility as it relates to
NoSQL architecture, let's take a look at how deployment strategies also impact agility.
9.1.1
Apply your knowledge: local or cloud-based deployment?
Sally is working on a project that has a tight budget and a short timeline. The organi-
zation she works for prefers to use database servers in their own data center, but in the
right situation they allow cloud-based deployments. Since the project is a new service,
the business unit is unable to accurately predict either the demand for the service or
the throughput requirements.
Sally wants to consider the impact of a cloud-based deployment on the project's
scalability and agility. She asks a friend in operations how long it typically takes for the
internal information technology department to order and configure a new database
server. She gets an email message with a link to a spreadsheet shown in figure 9.2. This
Search WWH ::




Custom Search