Diffing Engine for Webpage State Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional data compression techniques are inefficient for transmitting user interface information and executable code, especially when only small portions of data are updated, as they can be compute-intensive and unsuitable for frequent transmission, leading to potential data loss during communication.
Innovation Solution
A diffing engine is used to transmit data as incremental changes (differences), with a mechanism to automatically send the complete webpage from the server to the client in case of transmission errors, utilizing hash values to ensure data integrity and synchronization between the server and client.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If traditional data compression techniques are used to transmit user interface information, then bandwidth consumption is reduced, but the data transmission becomes compute-intensive and time-consuming
Solution Approach 1:
The patent segments the data transmission process into two distinct phases: (1) transmitting the complete data set initially, and (2) transmitting only incremental changes (differences) subsequently. This segmentation allows the system to benefit from compression for small updates while maintaining the ability to recover from transmission errors by requesting the complete data set again, thus resolving the contradiction between reduced bandwidth usage and transmission reliability.
Solution Approach 2:
The patent implements preliminary action by sending the complete data set before sending incremental changes. This ensures that the receiver has the full data context available before applying differences, enabling error recovery without requiring retransmission of the entire data set. This preliminary transmission establishes a foundation that reduces subsequent bandwidth needs while maintaining transmission efficiency.
2Loss of energy
If incremental changes are transmitted instead of complete data sets, then bandwidth consumption is minimized, but data integrity cannot be ensured when transmission errors occur
Solution Approach 1:
The patent implements feedback mechanisms where the receiver sends acknowledgments to the transmitter about the successful application of incremental changes. When transmission errors are detected (either through acknowledgment failures or explicit error notifications), the system triggers a feedback loop that requests retransmission of the complete data set. This feedback ensures data integrity while maintaining bandwidth efficiency for successful transmissions.
Solution Approach 2:
The patent prepares for potential transmission errors by maintaining the complete data set at the transmitter before incremental changes are sent. This 'cushioning' ensures that if an error occurs during incremental transmission, the complete data set is already available for retransmission, protecting against data integrity issues without requiring complex error correction codes that would increase bandwidth consumption.
3Reliability
If complete data sets are transmitted frequently, then data synchronization between server and client is maintained, but bandwidth consumption increases significantly
Solution Approach 1:
The patent implements dynamic data transmission by adapting the transmission strategy based on the current state of the data and the receiver's needs. Instead of transmitting complete data sets at fixed intervals, the system dynamically switches between transmitting complete sets and transmitting only incremental changes. This dynamic approach maintains data synchronization while minimizing bandwidth consumption by transmitting only what is necessary at each moment.
Solution Approach 2:
The patent changes the transmission parameter from fixed-interval complete data transmission to variable-interval differential transmission. The system monitors data changes and transmission success, adjusting the transmission strategy accordingly. When data changes are minor and transmission is successful, only differences are transmitted. When errors occur or significant changes happen, complete data sets are transmitted. This parameter change optimizes bandwidth usage while maintaining synchronization reliability.
Data Source
AI summary
The disclosure is directed to error correction in transmission of data whose state is to be synchronized between a server and a client. When data, e.g., a web page, changes at the server, the changes are sent to the client as a sequence of diffs, where each diff represents an incremental change in the state of the data over a previous diff in the sequence. This can eliminate the need to transmit the whole webpage whenever the web page changes. If a diff is lost in transmission, the state of the webpage at the client becomes invalid. To overcome this problem, the server sends a hash of the webpage state at the server to the client, e.g., at specified intervals. The client or server can compute a hash of the webpage state and compare both the hashes. If they don't match, the client receives the whole webpage.


