Mobile App Experiment Platform Offline Data Buffering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile application developers face challenges in conducting experiments to optimize their applications when test devices are disconnected from the network, as they cannot provide response information to the experiment server, hindering the analysis and optimization process.
Innovation Solution
The system allows test devices to store response information locally and provide it to the experiment server when connectivity is restored, enabling the experiment server to conduct experiments and analyze data even when devices are offline, by using a secondary experiment engine to assign and manage experimental treatments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If test devices are disconnected from the network to conduct experiments, then device autonomy and offline operation capability are improved, but the ability to provide response information to the experiment server deteriorates
Solution Approach 1:
The system performs preliminary actions by storing response information locally on the test device before network disconnection occurs. The experiment server sends experimental treatments and configuration information to the test device in advance, and the device stores this data along with any generated response information in its local storage, ensuring data is available even when offline.
Solution Approach 2:
The test device acts as an intermediary by maintaining a local storage buffer that mediates between the experiment server and the offline operation mode. This local storage serves as a temporary holding area for response information, allowing the device to function autonomously while preserving the ability to synchronize data with the server when connectivity is restored.
2Loss of information
If test devices continuously connect to the network to provide response information, then data synchronization and analysis capability are improved, but energy consumption and network dependency increase
Solution Approach 1:
Instead of continuous network communication, the system implements periodic action by establishing trigger conditions for data synchronization. Response information is uploaded to the experiment server only when specific conditions are met, such as when the device reconnects to the network, when storage capacity is reached, or when experiment phases are completed, thereby reducing unnecessary energy consumption.
Solution Approach 2:
The system maintains continuity of useful action by ensuring that experiments can proceed uninterrupted during offline periods. The test device continues to collect and store response information locally without requiring network connectivity, ensuring that the experimental process remains continuous while network communication occurs only when necessary.
3Productivity
If test devices store response information locally during offline periods, then offline experimentation capability is improved, but data storage requirements and device memory usage increase
Solution Approach 1:
The system extracts only the essential and necessary data for experimentation and storage. Configuration information and experimental treatments are selectively stored on the test device, and only response information directly related to the current experiment is retained in local storage, removing unnecessary data to minimize storage requirements.
Solution Approach 2:
The system implements a discard and recover mechanism where response information is temporarily stored locally on the test device during offline periods, then discarded from local storage once it is successfully uploaded and recovered on the experiment server. This ensures that local storage is used only as a temporary buffer rather than permanent storage.
4Ease of operation
If the experiment server manages all experimental assignments centrally, then experiment control and coordination are improved, but system complexity and server load increase
Solution Approach 1:
The system segments the experiment management functionality by separating the experiment server's role in sending configuration information and treatments from the test device's role in storing and executing them. This segmentation allows the server to focus on coordination and data collection while the device handles local experiment execution, reducing server load and complexity.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
A device may receive configuration information for an experiment associated with optimizing an application. The configuration information may identify a group of experimental treatments and information identifying a target event. The device may identify an experimental treatment to be implemented in the application, and may implement the experimental treatment in the application. The device may collect response information based on implementing the experimental treatment. The device may detect the target event associated with the experiment, indicating that the response information is to be provided to an experiment server. The device may determine that the experiment server is unreachable and may store the response information. The response information may be stored to allow the response information to be provided to the experiment server at a later time. The response information may be provided to the experiment server to permit the experiment server to determine a result of the experiment.