16 terms



Terms in this set (...)

Safety Guarantees provided by transactions. Atomicity, Consistency, Isolation, and Durability.
Systems that do not meet the ACID criteria. Stands for Basically Available, Soft state, and Eventual Consistency.
The ability to abort a transaction on error and have all writes from that transaction discarded.
refers to something that cannot be broken down into smaller parts.
In multi-threaded programming, if one thread executes an atomic operation, that means there is no way for another thread to see the half finished result of the operation. The system can only be in the state it was before the operation or after the operation, not something in between
Consistent Hashing
An Approach to partitioning that some systems use for rebalancing
Basic idea is to make a system appear as if there were only one copy of the data, and all operations on it are atomic. With this guarantee, even though there may be multiple replicas in reality, the application does not need to worry about them.
The idea of ACID consistency is that you have certain statements about your data (invariants) that must always be true—for example, in an accounting system, credits and debits across all accounts must always be balanced
in the sense of ACID means that concurrently executing transactions are isolated from each other: they cannot step on each other's toes
The promise that once a transaction has committed successfully, any data it has written will not be forgotten, even if there is a hardware fault or the database crashes.
Multi-Object Transactions
Considerations of Retrying an Aborted Transaction
1) transaction succeeded, but the server failed to ack due to network outage, resulting in duplicate entries. 2) if the error is due to overload, retrying will make the problem worse 3) its only worth retrying on transient errors 4) If the transaction has side affects outside of the database (e.g. sending an email), then those side affects will be repeated. 5) If the client process fails while retrying the data is lost.
Dirty Read
Reading data that has not been committed
Dirty Write
Overwriting data that has not been committed
Read Committed Isolation
Most basic isolation level that makes two guarantees 1) You will only see data that is committed (i.e. no Dirty Reads) 2) you will only overwrite data that has been committed (i.e. no Dirty Writes)
Read Skew
Timing Anomaly