Database Reference
In-Depth Information
triggers, or stored procedures. The application of those rules should also leave the
data in a valid state.
Isolation is a property that ensures that all transactions that are run concurrently
appear as if they were executed serially (one right after the other). Each transaction
must be run in a vacuum (isolation). This is to say that if two transactions are run
at the same time, they remain independent of each other during the transaction.
Some examples of isolation are locks (table, row, column, etc.), dirty reads, and
deadlocks. The reason these are relevant is concurrency. Multiple changes can be
attempted on the same data or set of data. Knowing what version of the data is the
correct one is important for keeping the entire system in a sane state.
Durability means that after the transaction is complete, it will remain that way.
In other words, the data change that is incurred by the transaction is stored per-
manently, regardless of external events (such as a power failure).
CAP
The CAP theorem, also known as Brewer's theorem, asserts that it is impos-
sible for a distributed system to satisfy all three CAP guarantees. CAP stands
for C onsistency, A vailability, and P artition tolerance. The important thing to note
about the CAP theorem is that all three parts of it cannot be satisfied at the same
time.
Although the C in CAP also stands for “consistency” (similar to the C in
ACID), the meaning is different. Consistency means that all nodes in a grouping
see the same data at the same time. In other words, any particular query hitting any
node in the system will return the same result for that specific query. Consistency
also further implies that when a query updates a value in one node, the data will
be updated to reflect the new value prior to the next query.
The availability of a system speaks to the guarantee that regardless of the suc-
cess or failure of a request, the requestor will receive a response. This means that
system operations will be able to continue even if part of the system is down,
whatever the reason. Availability is what lets the software attempt to cope with and
compensate for externalities such as hardware failures, network outages, power
failures, and the like.
Partition tolerance refers to the capability of a distributed system to effectively
distribute the load across multiple nodes. The load could be data or queries. This
implies that even if a few nodes are down, the system will continue to function.
Sharding is a commonly used management technique for distributing load across
Search WWH ::




Custom Search