Database Selection & Design (Part IV)

— Non-Relational Properties —

Audience: The article covers the Non-Relational Properties (Distributed Computing, CAP Theorem and PACELC Theorem) and its details. These concepts will be referred in the later parts of this series during the database selection and design procedures.

Transactional Management (BaSE) Requirements

  • Soft state: The state of the system could change over time, so even during times without input there may be changes going on due to ‘eventual consistency,’ thus the state of the system is always soft.
  • Eventual consistency: The system will eventually become consistent once it stops receiving input. The data will propagate to everywhere sooner or later, but the system will continue to receive input, and is not checking the consistency of every transaction before it moves onto the next one.

CAP Theorem Properties

CAP Theorem: Fundamental theorem for any distributed storage system pertaining to achievable properties

  • Availability (A): Every non-failing node in the system can always accept read and write requests by clients and will eventually return with a meaningful response, without an error message.
  • Partition-tolerance (P): It is the tolerance level of your database to keep running with its available nodes and serve the client requests. The system upholds the previously displayed consistency guarantees and availability in the presence of message loss between the nodes or partial system failure. When there is a partition failure, nodes in each side of the partition will continue to serve requests (Read / Write). When this happens, there is a possibility that nodes in each side will end up with different values via different write requests. This is called a “Split-Brain” issue. There are many conflict resolution techniques (in-built in the databases) that will help with this situation. Examples: Revision ID, Timestamp etc.

PACELC (passELK) Requirements — An alternate CAP formulation

  • This is observed in the databases like MySQL and Kafka.
  • This is observed in the databases like Amazon’s Dynamo, Facebook’s Cassandra, and Riak databases. These systems employ eventual consistency as is seen in AP systems of the CAP theorem.
  • This is observed in the databases like VoltDB/H-Store, MegaStore, BigTable and Hbase, Kafka, Zookeeper.
  • This can be seen in the PNUTS database built by Yahoo.

Conclusion:

BaSE properties are not very stringent like the ACID properties. It is all about the trade-offs you have to make between the related properties. These trade-offs come from your business requirements and your organizational policies. While these theoretical concepts provide the direction, there are lot of these properties backed into different databases. When it comes to decisioning, any database evaluation means analyzing the above properties and see how they can help you achieve your business goals.

Engineering Director, People Leader, Offroader, Handyman, Movie Buff, Photographer, Gardener