Volatile Function Timeout Management in Spreadsheet Servers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for handling volatile functions in spreadsheets lead to excessive recalculation cycles, straining limited resources in network environments, as volatile functions and their dependencies require recalculating whenever a calculation is performed, even if the function's value has not changed.

Innovation Solution

A method to determine a volatile function timeout value based on the calculation mode setting, allowing volatile functions to remain valid for a specified period without recalculation, thereby reducing unnecessary recalculations and conserving server resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If volatile functions are recalculated whenever a calculation request is made, then the accuracy and up-to-date status of the function results is improved, but the number of processing cycles and server resource consumption increases

Engineering Contradiction:
Improveaccuracy of volatile function resultsVSAvoidprocessing cycle count
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The server calculates volatile functions in advance and stores the results in a cache before they are actually needed. When a calculation request arrives, the server first checks the cache to see if valid results are available, and only calculates the function again if the cached results are expired or invalid. This preliminary caching action eliminates unnecessary recalculation cycles while maintaining result accuracy within the timeout period.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a cached copy of the volatile function results and stores it on the server. Instead of recalculating the original function every time, the server uses this cached copy as long as it is within the valid timeout period. The cache acts as a replica that preserves the function results without requiring continuous computation, thus reducing processing cycles while maintaining reliability.

Inventive Principle:
Principle #26Copying

2Reliability

If volatile functions are recalculated frequently to ensure up-to-date values, then the freshness of data is improved, but server memory and calculation resources are strained

Engineering Contradiction:
Improvefreshness of function resultsVSAvoidserver resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The server performs the calculation action in advance and stores the result in a cache before it is actually requested. This preliminary calculation eliminates the need for frequent recalculation when data freshness is needed, as the cached results are already available. The server only performs the energy-intensive calculation when the cache is expired or needs updating, significantly reducing server resource consumption while maintaining data freshness within the timeout period.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a cached copy of the volatile function results on the server memory. This copy allows the server to provide fresh data without repeatedly performing the original calculation. The cached copy serves as a resource-efficient way to maintain data freshness, as it consumes minimal server resources compared to continuous recalculation, thus resolving the contradiction between data freshness and server resource consumption.

Inventive Principle:
Principle #26Copying

3Reliability

If all functions dependent on volatile functions are recalculated, then the consistency of dependent values is improved, but the total number of calculation cycles increases

Engineering Contradiction:
Improveconsistency of dependent valuesVSAvoidcalculation cycle complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The server calculates volatile functions and stores their results in a cache before they are needed by dependent functions. When a calculation request arrives, the server checks the cache first and only recalculates the volatile function if necessary. This preliminary caching action reduces the propagation of recalculation cycles to dependent functions, as they can use the cached volatile function results without triggering their own recalculation, thus reducing overall calculation cycle complexity while maintaining consistency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a cached copy of volatile function results that can be shared by dependent functions without triggering their recalculation. This copy mechanism breaks the dependency chain for recalculation, allowing dependent functions to access stable cached values. By using the cached copy instead of repeatedly calculating and propagating changes through the dependency graph, the system maintains consistency of dependent values while significantly reducing the total number of calculation cycles required.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7640490B2Method, system, and computer-readable medium for controlling the calculation of volatile functions in a spreadsheet
Publication Date: 2009.12.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7640490B2 patent drawing
  • US7640490B2 patent drawing
  • US7640490B2 patent drawing

AI summary

A method, system, and computer-readable medium are provided for controlling the calculation of volatile functions in a workbook created in a spreadsheet application program such that the volatile function does not need to be recalculated each time a calculation request is received in the workbook. A volatile function may include a function which is capable of returning a different value each time the function is calculated. The spreadsheet application program determines a calculation mode setting for the workbook, calculates a volatile function timeout value based on the calculation mode setting, and calculates the volatile function based on the volatile function timeout value. The volatile function timeout value may include a time span for which the results of a volatile function are valid. The volatile function timeout value is calculated by determining the maximum of a workbook timeout value assigned to the workbook on a client computer and a server timeout value assigned to the workbook on a server computer running the spreadsheet application program. During the volatile function timeout period, the volatile functions are not recalculated.