Databases Reference
In-Depth Information
Figure 2.8 ACID versus BASE—understanding the trade-offs. This figure compares the rigid financial
accounting rules of traditional RDBMS ACID transactions with the more laid-back BASE approach
used in NoSQL systems. RDBMS ACID systems are ideal when all reports must always be consistent
and reliable. NoSQL BASE systems are preferred when priority is given to never blocking a write
transaction. Your business requirements will determine whether traditional RDBMS or NoSQL systems
are right for your application.
highly decentralized and ACID guarantees may not be necessary, so they use BASE and
take a more relaxed approach. Figure 2.8 shows an accurate and somewhat humorous
representation of ACID versus BASE philosophies.
A final note: ACID and BASE aren't rigid points on a line; they lie on a continuum
where organizations and systems can decide where and how to architect systems. They
may allow ACID transactions on some key areas but relax them in others. Some data-
base systems offer both options by changing a configuration file or using a different
API . The systems administrator and application developer work together to imple-
ment the right choice after considering the needs of the business.
Transactions are important when you move from centralized to distributed systems
that need to scale in order to handle large volumes of data. But there are times when
the amount of data you manage exceeds the size of your current system and you need
to use database sharding to keep systems running and minimize downtime.
2.6
Achieving horizontal scalability with database sharding
As the amount of data an organization stores increases, there may come a point when
the amount of data needed to run the business exceeds the current environment and
some mechanism for breaking the information into reasonable chunks is required.
Organizations and systems that reach this capacity can use automatic database sharding
(breaking a database into chunks called shards and spreading the chunks across a num-
ber of distributed servers) as a means to continuing to store data while minimizing sys-
tem downtime. On older systems this might mean taking the system down for a few
hours while you manually reconfigure the database and copy data from the old system
to a new system, yet NoSQL systems do this automatically. How a database grows and its
tolerance for automatic partitioning of data is important to NoSQL systems. Sharding
Search WWH ::




Custom Search