Client-Side Sampling of Software Event Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software providers face challenges in efficiently collecting, organizing, and processing large volumes of software update event information from client computers, leading to network traffic overload and impractical processing demands, necessitating a more efficient sampling method.

Innovation Solution

Implementing a client-side sampling system where client computers generate and use sampling values to determine whether to report software events to a collection service, reducing the volume of data transmitted and processed while maintaining accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If all client computers report every software update event to the collection service, then complete event data is collected for analysis, but network bandwidth and infrastructure are overwhelmed

Engineering Contradiction:
Improveevent data completenessVSAvoidnetwork traffic volume
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent implements client-side sampling where each client computer randomly selects a subset of events to report based on a sampling rate parameter. Instead of reporting all events (excessive action), only a statistically significant portion is reported (partial action), reducing network traffic by up to 75% while maintaining sufficient data for accurate aggregate analysis.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If a large sample size is collected to maintain statistical accuracy, then measurement precision is improved, but processing complexity and infrastructure requirements increase

Engineering Contradiction:
Improvestatistical accuracyVSAvoidprocessing infrastructure
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The sampling decision is made in advance at the client computer before events are transmitted to the collection service. Each client generates or receives a sampling rate parameter and uses it to pre-determine which events will be reported. This preliminary sampling action at the source eliminates the need for complex server-side filtering and processing infrastructure.

Inventive Principle:
Principle #10Preliminary action

3Loss of energy

If sampling is performed at the client side, then network bandwidth usage is reduced, but implementation complexity on client devices increases

Engineering Contradiction:
Improvenetwork bandwidth consumptionVSAvoidclient-side processing
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent introduces a sampling rate parameter that controls the proportion of events reported. This single parameter can be adjusted to balance network bandwidth consumption against client-side processing requirements. The sampling logic uses simple random selection based on this parameter, keeping client-side implementation relatively simple while achieving significant network bandwidth reduction.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7634506B2Client-side sampling of reportable event information
Publication Date: 2009.12.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7634506B2 patent drawing
  • US7634506B2 patent drawing
  • US7634506B2 patent drawing

AI summary

A networked computing system for reporting software events occurring on a client computer to a collection service is presented. The networked computing system comprises a collection service, communicatively coupled to a communications network, and a plurality of client computers. The collection service is configured to receive software events from a client computer over the communications network. Each client computer is also communicatively coupled to the communications network. Each client computer is further configured to generate a sampling value on the client computer for a corresponding software module, and detect the occurrence of a software event corresponding to the software module. Upon detecting the occurrence of a software event corresponding to the software module, each client computer determines whether a sampling value falls within a predetermined sampling range, and if so, reports the software event to the collection service over the communications network.