Database Change Tracking via Row Update Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile databases lack support for database triggers, leading to memory constraints and burdensome overhead in tracking changes, as all data changes must be maintained in memory, limiting the capabilities of mobile applications.
Innovation Solution
A method is introduced where a first column with a row update identifier is added to each database table, and a global update identifier is incremented for each change, with a reference table generated for synchronization events, allowing tracking of updates without relying on database triggers by comparing row update identifiers with synchronization identifiers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If database triggers are used to track changes, then change tracking reliability is improved, but device complexity increases (triggers are not supported in mobile databases)
Solution Approach 1:
The patent creates a copy of the change tracking functionality by implementing manual row-level tracking mechanisms (RowUpdateIdentifier, GlobalUpdateIdentifier) that replicate the behavior of database triggers without requiring actual trigger support. This allows mobile databases to achieve trigger-like change tracking capabilities through application-level code instead of database-level procedural code.
Solution Approach 2:
The patent replaces the mechanical database trigger system with a software-based identification and tracking system. Instead of using database triggers (a mechanical/database-level mechanism), the invention uses identifier columns and application logic to track changes, substituting the database's procedural execution model with an application-level data tracking model suitable for mobile environments.
2Reliability
If all data changes are maintained in memory, then change tracking capability is improved, but memory consumption increases
Solution Approach 1:
The patent extracts only the essential change tracking information from the entire database state. Instead of maintaining all data changes in memory, the system extracts and stores only the RowUpdateIdentifier and GlobalUpdateIdentifier columns, which contain the minimal necessary information to track changes. This extraction reduces memory requirements while preserving change tracking capability.
Solution Approach 2:
The patent segments the change tracking function into discrete identifier columns within the database schema itself. By embedding RowUpdateIdentifier and GlobalUpdateIdentifier as columns in each table, the system divides change tracking into granular, table-level segments rather than maintaining a monolithic in-memory representation of all changes. This segmentation allows efficient storage and retrieval with minimal memory overhead.
3Measurement precision
If row update identifiers are added to track changes, then change tracking precision is improved, but device complexity increases
Solution Approach 1:
The patent makes the identifier columns serve multiple functions: RowUpdateIdentifier tracks individual row change history, GlobalUpdateIdentifier tracks overall database synchronization state, and together they enable both change detection and synchronization coordination. This multi-functionality reduces the need for separate tracking mechanisms, thereby limiting the increase in device complexity while maintaining high measurement precision.
Data Source
AI summary
Methods, devices, and computer-readable storage media for tracking changes in a database including at least one database table include adding a first column to a schema of each database table. The first column includes a row update identifier for each row of the database table. A global update identifier is incremented in response to a row change and recorded as the row update identifier for the changed row. In response to a latest database synchronization event, a reference table including a synchronization update identifier is generated, and the global update identifier is incremented and recorded as the synchronization update identifier. An update to a row in a database table is tracked based at least upon determining that a row update identifier of the updated row in the database table is greater than the synchronization update identifier in the reference table.


