capacity planning. The same operational tasks apply to small clusters and
large clusters. More machines does not mean more ops.” (Basho
Technologies, Inc.)
Scylla
Scylla is being developed by a fairly young startup called ScyllaDB. The
product compares itself with Cassandra, and the company calls it a “drop-in
replacement with lightning fast throughput and ultra-low latency.” Although it
is being produced by a small company, it has some big-name financial
backers. Scylla is not yet well known; at the time of this writing, we only
know of smaller deployments. However, it is being used on servers owned
and used by major companies, so we consider it worth mentioning.
Document Stores
Document stores are designed to store data that is already structured in some
form of notation, such as JSON or XML. A document store typically focuses
on one specific type of notation and is intended to allow entire objects,
including arrays and hashes, to be stored and retrieved at once.
Many times document stores are implemented as a layer between an
application and a relational database to hold the output of certain types of
queries. For example, it might be convenient to aggregate information that is
typically requested together—such as a set of user preferences or name and
address information—and store it as one object. Requesting and retrieving
only one object that is already formatted in an object notation like JSON is
faster than making many database queries, and it supplies preformatted data
for the client application that can be used to both style output and display
specific data at the same time.
Data that is stored and served this way does not have to fit database-specific
formatting requirements in a NoSQL database. There are no tables to relate,
and data may be larger or smaller and may include more or less information.
This is generally called semistructured data. Listings 29.1 and 29.2 are quick
snippets of two sets of user preferences in JSON—one that includes many
user-set preferences and one that includes only one. The client application
could be created to assume a set of default preferences that will be used
unless specifically overridden by this file.
LISTING 29.1 Sandra’s Preferences
Click here to view code image