Atomic Publication of Distributed Writes to Data Warehouse
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional distributed data warehouse systems face challenges in maintaining atomicity and efficiency during bulk operations, as they either compromise on atomicity by loading data twice or on efficiency by exposing new records at different times, and struggle to handle composition of bulk mutations across multiple tables.
Innovation Solution
The solution involves moving traditional responsibilities for large fact tables into user space, allowing external computing devices to perform operations normally reserved for the data warehouse's master node, generating publication identifiers and version values for source data, and updating publication tables to ensure atomicity and efficiency in data management and retrieval.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If bulk load operations are used to improve performance, then data loading speed increases, but atomicity is compromised as data may be exposed at different times
Solution Approach 1:
The system performs preliminary actions by creating a publication identifier and version value before the bulk load operation completes. This preliminary metadata creation allows the system to track the intended atomic unit of data before actual loading occurs, enabling post-hoc verification of atomicity without blocking the high-speed bulk load process.
Solution Approach 2:
The publication identifier acts as an intermediary between the bulk load operation and the data warehouse query interface. It mediates the atomicity guarantee by serving as a reference key that connects multiple bulk-loaded tables, allowing the system to expose data atomically through this intermediary reference rather than requiring all data to be physically present simultaneously.
2Reliability
If data is loaded twice to maintain atomicity, then atomicity is preserved, but storage cost and time increase
Solution Approach 1:
Instead of loading data twice, the system creates a lightweight copy in the form of a publication identifier and version value. This metadata copy references the actual data without duplicating it, providing the atomicity tracking functionality while avoiding the storage and time costs of duplicating the full dataset.
3Reliability
If master node locking is implemented to ensure data integrity, then data consistency is maintained, but processing parallelism is reduced
Solution Approach 1:
The system extracts the data integrity verification function from the master node's locking mechanism and relocates it to the client side. By moving the atomicity verification responsibility to the client through publication identifiers, the master node is freed from serialization bottlenecks, allowing full processing parallelism while maintaining data consistency through the extracted verification mechanism.
Solution Approach 2:
Clients perform self-service data integrity verification using publication identifiers and version values. Instead of relying on the master node to enforce consistency through locking, each client independently verifies data atomicity by checking these metadata fields, enabling distributed verification without centralized coordination overhead.
4Productivity
If bulk load operations are used to improve performance, then loading speed increases, but composition into larger transactions is not allowed
Solution Approach 1:
The publication identifier serves multiple functions: it tracks atomicity for single bulk operations, enables composition of multiple bulk operations into larger transactions, and provides version control. This multi-functional metadata structure allows the system to maintain high bulk load performance while simultaneously enabling complex transaction compositions across multiple tables and operations.
Data Source
AI summary
Systems and methods for retrieving and using data stored in a data warehouse. The methods comprise performing the following operations by a computing device: receiving a query for information directed to a plurality of fact tables (each fact table comprising sets of source data that are arranged so as to be respectively associated with a plurality of first publication identifiers); obtaining second publication identifiers from a publication table, in response to the query; and obtaining at least one of the sets of source data from each fact table that is associated with a first publication identifier of the plurality of first publication identifiers which matches one of the second publication identifiers.


