Incremental Save Recovery for Content Streaming Sessions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Content streaming systems often lose user progress during gaming sessions due to unexpected terminations, as they only save updates at the end of the session, failing to recover the current state if the session crashes or loses connectivity.
Innovation Solution
Implement incremental saves during sessions, generating data packages for file changes to reload the most current state if a termination event occurs, using techniques like directory notifications and logs to track file changes and generate data packages during quiet states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the system only saves updates at the end of the session, then storage space is conserved and save operations are simple, but user progress is lost when the session terminates unexpectedly
Solution Approach 1:
The system performs preliminary save actions by creating data packages that capture file changes as they occur during the session. These data packages are generated incrementally and stored in memory, preparing the progress data in advance before the session ends, whether normally or unexpectedly.
Solution Approach 2:
The save mechanism is segmented into incremental data packages that capture changes to individual files or portions of files. Each data package represents a discrete unit of progress that can be independently stored and recovered, rather than saving the entire application state as a single unit.
2Reliability
If the system generates and stores data packages during the session, then user progress can be recovered after unexpected termination, but storage space is consumed and system resources are used
Solution Approach 1:
The system uses in-memory storage for data packages during the session, treating these temporary data structures as disposable objects that exist only for the duration of the gaming session. This avoids permanent storage consumption while still enabling recovery.
Solution Approach 2:
The system extracts only the essential progress information needed for recovery into compact data packages. Rather than storing complete file copies or entire application states, it extracts and stores only the critical change data required to restore progress after termination.
3Reliability
If the system takes a snapshot of the entire disk at the end of the session, then all progress is saved, but the save operation is time-consuming and may not complete before unexpected termination
Solution Approach 1:
The system performs save actions preliminarily and incrementally throughout the session by generating data packages as files are modified. This continuous incremental saving eliminates the need for a time-consuming final snapshot operation, as progress is captured continuously in the background.
Solution Approach 2:
The system uses periodic monitoring of file system changes to generate data packages at regular intervals or upon detecting specific change events. This periodic capture mechanism ensures progress is saved frequently without requiring continuous full-disk snapshotting.
Data Source
AI summary
In various examples, incremental application saves for content streaming systems is described herein. Systems and methods are disclosed that perform incremental saves during sessions associated with applications, such as a gaming application, and then use the incremental saves to retrieve most current states associated with the applications if one or more termination events occur. For instance, during a session of an application, data packages may be generated that represent changes to the application, such as changes to one or more files and/or one or more portions (e.g., a block(s)) of the file(s). As such, if a termination event occurs during the session, such as the session crashing, user data may be used to reload an initial state of the application at the beginning of the session while the data packages are then used to reload a most current state of the application before the termination event(s) occurred.


