Client-Server Synchronization Restart Mechanism
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional synchronization processes between clients and servers often require unnecessary re-transmission of data when interrupted, leading to inefficiencies in server, client, and network resource usage.
Innovation Solution
The system allows clients to request a restart of synchronization from the point of interruption, with the server determining if data is available in a memory cache or database to resume transmission from that point, or initiating a new sync if not available.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the server re-transmits all data from the beginning after sync interruption, then the client can ensure complete data receipt, but server, client and network resources are wasted due to unnecessary re-transmission of already received data
Solution Approach 1:
The synchronization data is divided into discrete units (sync data units) that can be individually tracked and transmitted. The client maintains information about which specific units were successfully received, allowing the server to segment the re-transmission process and send only the missing units rather than all data from the beginning.
Solution Approach 2:
The client performs preliminary actions by tracking and recording which sync data units were successfully received before interruption. This information is stored and used during re-synchronization to determine the exact starting point, eliminating the need to re-transmit already received data and thus reducing resource waste.
2Reliability
If the server re-transmits all data from the beginning after sync interruption, then the client receives complete data, but the synchronization time is extended due to unnecessary re-transmission
Solution Approach 1:
The sync data is segmented into trackable units, enabling the system to identify exactly which units need re-transmission. This segmentation allows the synchronization process to skip already received portions and resume only from the interruption point, significantly reducing the time required compared to re-transmitting all data from the beginning.
Solution Approach 2:
The client provides feedback to the server about which sync data units were successfully received during the initial synchronization. This feedback mechanism enables the server to adjust the re-synchronization process by sending only the missing units, thereby reducing the overall synchronization time while maintaining data completeness.
3Loss of energy
If the client tracks and requests restart from the last received point, then resource usage is optimized, but the system complexity increases due to tracking and coordination requirements
Solution Approach 1:
The client performs self-service by autonomously tracking which sync data units were successfully received and automatically generating restart requests at the appropriate point in the synchronization process. This self-service approach reduces the need for complex server-side tracking and coordination, optimizing resources while managing complexity through client-side autonomy.
Data Source
AI summary
Systems, methods and computer program products for efficiently re-starting and/or recovering interrupted synchronizations between a client and a server are described herein. A server transmits sync data to a client during a synchronization operation. The sync is interrupted for some reason prior to the client receiving all of the sync data. The client sends to the server a request to re-start the synchronization operation. The request includes information that identifies a point in the sync data that was received by the client prior to interruption of the sync. Such information may include (a) information identifying the last data received by the client prior to interruption of the sync; and/or (b) information identifying the next data needed by the client upon re-start of the sync. Thereafter, the server re-starts the sync by transmitting to the client the sync data starting from said point in said sync data identified by said request.


