Database Reference
In-Depth Information
In principle, choosing the adequate NoSQL system (from the very wide available
spectrum of choices) with design decisions that best fit with the requirements of a
software application is not a trivial task and requires careful consideration. Table 9.1
provides an overview of different design decision for sample NoSQL systems.
In practice, transactional data management applications (e.g., banking, stock trad-
ing, supply chain management) that rely on the ACID guarantees that databases pro-
vide, tend to be fairly write-intensive or require microsecond precision and are less
obvious candidates for the cloud environment until the cost and latency of wide-area
data transfer decreases. Cooper et al. [26] discussed the tradeoffs facing cloud data
management systems as follows:
Read performance vs. write performance : Log-structured systems that only
store update deltas can be very inefficient for reads if the data is modified
over time. On the other hand, writing the complete record to the log on
each update avoids the cost of reconstruction at read time but there is a cor-
respondingly higher cost on update. Unless all data fits in memory, random
I/O to the disk is needed to serve reads (e.g., as opposed to scans). However,
for write operations, much higher throughput can be achieved by appending
all updates to a sequential disk-based log.
Latency vs. durability : Writes may be synched to disk before the system
returns success to the user or they may be stored in memory at write time
and synched later. The advantages of the latter approach are that avoid-
ing disk access greatly improves write latency, and potentially improves
TABLE 9.1
Design Decisions of Various Web-Scale Data Management Systems
System
Data Model
Query Interface
Consistency
CAP Options
License
Bigtable
Column Families
Low-Level API
Strict
CP
Internal at Google
Google
AppEng
Column Families
Python
API-GQL
Strict
CP
Commercial
PNUTS
Key-Value Store
Low-Level API
Multiple
AP
Internal at Yahoo
Dynamo
Key-Value Store
Low-Level API
Eventual
AP
Internal at
Amazon
S3
Large Objects
Store
Low-Level API
Eventual
AP
Commercial
SimpleDB
Key-Value Store
Low-Level API
Multiple
AP
Commercial
RDS
Relational Store
SQL
Strict
CA
Commercial
SQL Azure
Relational Store
SQL
Strict
CA
Commercial
Cassandra
Column Families
Low-Level API
Tunable
AP
Open source—
Apache
Hypertable
Multidimensional
Table
Low-Level API,
HQL
Eventual
AP
Open source—
GNU
CouchDB
Document-
Oriented Store
Low-Level API
Eventual
AP
Open source—
Apache
 
Search WWH ::




Custom Search