Dynamic Sampling of Application Events for Data Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The sheer volume of data generated by software applications overwhelms data-analyzing computer programs, necessitating effective methods to analyze and extract useful statistics from user interactions.
Innovation Solution
A server system dynamically samples application events based on their occurrence rates, storing the data in a first store, determining sampling rates for each event, and forming sets of usage data, which are then stored in a second store and used to generate reports.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If all usage data from multiple applications is stored and analyzed, then comprehensive insights into user behavior are obtained, but the volume of data becomes overwhelming and difficult to process
Solution Approach 1:
The patent segments the usage data by application and event type, organizing large volumes of data into manageable categories. Each application's events are separated and processed independently, allowing the system to handle comprehensive data while reducing processing complexity through structured organization.
Solution Approach 2:
The patent extracts and analyzes specific event types from the broader usage data. By identifying and separating distinct event categories (e.g., user interactions, system events), the system can process comprehensive data while focusing analysis on meaningful patterns, reducing overall processing complexity.
2Productivity
If dynamic sampling rates are applied to reduce data volume, then processing efficiency improves, but the complexity of determining and managing sampling rates increases
Solution Approach 1:
The patent implements dynamic sampling rates that automatically adjust based on real-time data characteristics. Sampling rates vary by application and event type, allowing the system to optimize processing efficiency while managing complexity through automated adaptation rather than manual configuration.
Solution Approach 2:
The patent changes the sampling rate parameter dynamically based on data volume and event characteristics. By adjusting this single critical parameter according to observed patterns, the system achieves efficient processing without requiring complex management of multiple fixed rates or manual intervention.
3Loss of information
If usage data is stored in a first data store before sampling, then complete data is available for analysis, but storage requirements and data retrieval time increase
Solution Approach 1:
The patent performs preliminary organization of data in the first store by application and event type before sampling occurs. This pre-structuring allows the system to maintain data completeness while reducing retrieval time, as data is already arranged in a way that facilitates efficient sampling and analysis.
Solution Approach 2:
By segmenting data into application-specific buckets with event type subcategories, the system enables complete data availability for analysis while reducing retrieval time. The segmented structure allows targeted queries and efficient sampling without requiring full data scans.
Data Source
AI summary
A method of dynamically sampling application events includes receiving usage data for a plurality of applications on client devices. The usage data includes data for instances of events that occur in the plurality of applications in response to users interacting with the plurality of applications on the client devices. The method further includes storing the usage data in a first data store, determining, for respective applications of the plurality of applications, sampling rates for respective application events of the plurality of application events based at least in part on respective quantities of instances of the respective application events during a period of time, sampling from the first data store the data for the instances of the respective application events at the sampling rates to form respective sets of usage data, and providing a report using one or more sets of the sets of usage data.


