Software Design - Data Consistency
Table of Contents
1 - About
In its most basic form, consistency refers to data values in one data set being consistent with values in another data set.
When all applications or thread, see the same data the system is in a consistent state.
A strict definition of consistency specifies that two data values drawn from separate data sets must not conflict with each other, although consistency does not necessarily imply correctness.
Even more complicated is the notion of consistency with a set of predefined constraints. More formal consistency constraints can be encapsulated as a set of rules that specify consistency relationships between values of attributes, either across a record or message, or along all values of a single attribute.
Other definitions, context:
- From an algorithm perspective, consistency means that a function always produces the same result for a given input value.
- Consistency is also known as deterministic in mathematical terms
Consistency means that after you do a successful write, future reads will always take that write into account. Otherwise, you may have an eventual consistency.
2 - Articles Related
3 - Eventual
4 - Implementation
4.1 - Database
- a multi version consistency model
4.2 - ETL
The best way to ensure consistency is to publish the data once. Storing calculated fact ensures that all users and reporting applications refer to it consistently. A single publishing run also reduces the extract tansformation load (ETL) development effort. as well the ongoing data management and disk storage burden.
5 - Example
An example of a consistency rule verifies that within a corporate hierarchy structure, the sum of the number of employees at each site should not exceed the number of employees for the entire corporation
6 - Consistency Context
Consistency may be defined within different contexts:
- Between one set of attribute values and another attribute set within the same record (record-level consistency)
- Between one set of attribute values and another attribute set in different records (cross-record consistency)
- Between one set of attribute values and the same attribute set within the same record at different points in time (temporal consistency)
- Consistency may also take into account the concept of reasonableness, in which some range of acceptability is imposed on the values of a set of attributes.