Anchor Row Vector Identification for Concurrent Reads
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In business intelligence (BI) queries on real-time data, the contention between reads and updates in databases leads to inconsistency and high latch overhead, especially in column stores where data is decomposed, causing readers to see outdated versions and updaters to wait for readers to 'drain out' before accessing records.
Innovation Solution
A method that includes storing an anchor row vector identification in local memory, determining its visibility based on isolation requirements, and re-reading it if unchanged, with a history tuple sequence number check to ensure readers access a consistent version of the data without needing to latch the entire record, allowing concurrent reads and updates in a decomposed store.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If readers latch the entire record to avoid seeing inconsistent versions, then data consistency is improved, but latch overhead increases and productivity decreases
Solution Approach 1:
The patent segments the record into an anchor row (containing the latch) and data rows (containing actual data). Readers only latch the anchor row to ensure consistency, not the entire record. This allows readers to access data rows without holding locks on the full record, reducing latch overhead and improving query performance while maintaining data consistency through the version identifier in the anchor row.
2Reliability
If updaters wait for readers to drain out before accessing records, then data consistency is improved, but wait time increases and productivity decreases
Solution Approach 1:
By separating the latch (anchor row) from the data (data rows), the system allows readers and updaters to operate concurrently on different segments. Readers hold latches only on anchor rows, not data rows, enabling updaters to proceed without waiting for readers to fully drain, thus reducing updater wait time while maintaining consistency through version identifiers.
Solution Approach 2:
The anchor row acts as an intermediary mechanism that mediates between readers and updaters. It provides a lightweight locking mechanism that coordinates access without requiring updaters to wait for complete reader termination, enabling more efficient concurrency while preserving data consistency through version tracking.
3Adaptability or versatility
If readers scan large portions of the entire data set, then BI query coverage is improved, but latch overhead increases
Solution Approach 1:
The patent applies segmentation at the record level, where each record is divided into an anchor row (with latch and version identifier) and data rows. When readers scan large portions of data, they only need to manage latches on anchor rows, not entire records. This reduces the scope and overhead of latching while maintaining comprehensive query coverage across the data set.
Data Source
AI summary
A method includes storing an anchor row vector identification for an anchor row to a local memory. It is determined whether the anchor row vector identification is visible based on isolation requirements. The anchor row vector identification is accessed upon a determination that the anchor row vector identification is visible, and the row vector identification is re-read from the local memory. It is determined whether the anchor row vector identification has not changed since a start of the accessing. Upon a determination that the anchor row vector identification has not changed, read anchor row fields are returned. A first check history is performed on an anchor row history tuple sequence number (TSN) for the anchor row.


