Data Partitioning for Business Planning Tool Update Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large business planning tools face performance and cost overhead due to the complexity of updating data, particularly when dealing with millions of cells, as existing methods either require extensive cell-level dependency graphs or higher-than-cell-level partitioning that can introduce circularity and complexity, making the updating process inefficient.

Innovation Solution

A data partitioning system that groups data cells into blocks with no internal dependencies, creating a directed acyclic dependency graph, allowing for efficient updates by partitioning data cells within separate hierarchy levels and time periods, and selectively updating data blocks based on affected cells, thereby reducing node count and avoiding complex dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If cell-level dependency graph is used to track dependencies, then update accuracy is maintained, but system overhead and complexity increase significantly with large cell counts

Engineering Contradiction:
Improveupdate accuracyVSAvoidsystem overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the cell-level dependency tracking into two levels: (1) intra-cube dependencies are tracked at the cell level within each cube, and (2) inter-cube dependencies are tracked at the cube level in the dependency graph. This segmentation reduces the overall complexity by avoiding a single massive cell-level graph while maintaining accurate update propagation through the hierarchical approach.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If data is partitioned into cubes at higher-than-cell-level, then dependency graph size is reduced, but circularity and complex interdependencies are introduced

Engineering Contradiction:
Improvedependency graph sizeVSAvoidcircularity
Core Design Contradiction:
Device complexityVSObject-generated harmful factors

Solution Approach 1:

The patent applies local quality by treating intra-cube and inter-cube dependencies differently. Within each cube, full cell-level dependency tracking maintains accuracy without circularity. Between cubes, the system uses a simplified cube-level dependency graph that avoids circularity by design, while still capturing the essential update relationships. Each level has its own dependency tracking quality appropriate to its scope.

Inventive Principle:
Principle #3Local quality

3Productivity

If cube-level partitioning is used to reduce overhead, then update speed may improve, but handling complex interactions between cubes and cells within cubes becomes difficult

Engineering Contradiction:
Improveupdate speedVSAvoiddependency handling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the update process into two distinct phases: (1) intra-cube updates that handle cell-level dependencies within each cube using the cube's internal dependency structure, and (2) inter-cube updates that propagate changes between cubes using the cube-level dependency graph. This segmentation allows each phase to be optimized independently, improving overall update speed while managing complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8151056B2Updating data within a business planning tool
Publication Date: 2012.04.03 ANAPLAN INC
  • US8151056B2 patent drawing
  • US8151056B2 patent drawing
  • US8151056B2 patent drawing

AI summary

A apparatus is provided for updating data within a business planning tool. The apparatus comprises a computer memory (22) arranged to store operational data in a plurality of line items (50), each line item (50) being arranged to represent operational data in data cells (52) occupying space in a plurality of dimensions (X, Y), and each line item (50) having data cells in a first dimension (Y) configured to represent the operational data in a at least one hierarchy level, and having data cells in a second dimension (X) arranged to represent the respective operational data over at least one time period. A processor (24) is arranged to partition each line item (50) into data blocks (60) comprising one or more data cells (52) by identifying and grouping data cells (52) which belong to a single hierarchy level within the first dimension (Y) and a single time period within the second dimension (X), to create a dependency graph having a node for each data block (60) and which represents the inter-dependency of the data blocks (60) and in which there are no internal dependencies within a data block; and to update the data blocks (60) based on the dependency graph when at least one data cell is changed. In this way, an efficient updating apparatus is achieved.