Databases Reference
In-Depth Information
match actual performance for a particular business problem. If you're making critical
business decisions, we recommend you create a pilot project and simulate an actual
load using leased cloud systems.
Let's look at two extreme cases: a key-value store and a document store. After
reviewing the vendor brochures, you feel that both of these systems have similar linear
scalability rules that meet your business growth needs. Which one is right for your
project?
The answer lies in how you want to retrieve the data from each of these systems. If
you only need to store images and using a URL to specify an image is appropriate,
then a key-value store is the right choice. If you need to be able to store items and
query on a specific subset of items based on the items' properties, then a key-value
store isn't a good match since the value portion of a key is opaque to queries. In con-
trast, a document store that can index dates, amounts, and item descriptions might be
a better match.
Figure 6.4 shows a sample chart that ranks systems based on their scalability versus
expressivity.
The challenge is that both scalability and expressivity rankings are dependent on
your specific business situation. The scalability requirements for some systems might
focus on a high number of reads per second and others might focus on writes per sec-
ond. Other scalability requirements might only specify that a large amount of data be
transformed overnight. In the same way, your expressivity could include the require-
ments for ranked full-text search or the ability to query for annotations within text.
If you're involved in the software selection process, you want to remember that
there's seldom one perfect solution. The scalability and expressivity analysis is a good
example of this trade-off analysis. As we look at other tools to help you make these
trade-off decisions, you'll see that understanding your data will help you classify your
big data problems.
Scalability
Distributed
by design
Column
family
Figure 6.4 A sample of how
you might rank scalability
(vertical axis) and expressivity
(horizontal axis) for your
requirements. Simple key-value
stores are almost always the
least expressive but most
scalable. Document stores are
usually the most expressive.
How you rate scalability and
expressivity may depend on
your business situation.
Memcached
Document
stores
Cluster
configuration
Row
stores
In-memory
cache
Graph-
stores
Single CPU
Expressivity
Key-value
Column
family
Row
store
JSON
XML
Search WWH ::




Custom Search