Database Selection Management via Span and Pattern Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database applications face performance issues and excessive memory usage due to the need to manage large data sets and user selections, particularly in grid implementations where each row's selection state requires significant memory, leading to potential shutdowns from memory exhaustion.

Innovation Solution

The architecture represents large data selections using set structures that store span and pattern information, allowing for optimized memory usage by consolidating or eliminating structures dynamically as user selections change, thereby reducing memory footprint to a nearly constant amount regardless of the number of rows selected.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If memory is allocated in proportion to the number of rows in the grid to manage selection, then selection management capability is improved, but memory usage increases excessively

Engineering Contradiction:
Improveselection management capabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the selection management into two parts: (1) a compact data structure that stores only selection state information (flags) for each row, and (2) a separate mechanism that manages selection sets using span and pattern information. This segmentation allows the system to track selections without allocating memory proportional to the total number of rows in the grid.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a simplified copy of selection information using a compact data structure that stores only the essential selection state (selected/not selected) for each row, rather than storing complete row objects or complex selection metadata. This copying approach reduces memory usage while preserving the necessary selection management functionality.

Inventive Principle:
Principle #26Copying

2Measurement precision

If memory is allocated in proportion to the number of rows selected, then selection tracking accuracy is improved, but memory usage increases and performance deteriorates

Engineering Contradiction:
Improveselection tracking accuracyVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential selection state information from the complete row data, storing merely the selection flag for each row in a compact array. This extraction approach maintains precise selection tracking while eliminating the need to store or process unnecessary row data in memory, thereby reducing memory usage and improving performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation from storing complete row objects or complex selection structures to storing simple boolean flags or span-pattern parameters. This parameter transformation reduces the memory footprint from O(n) where n is the number of selected rows to O(1) or O(log n) depending on the selection pattern, while maintaining accurate selection tracking.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If complete row data is stored to track selected rows, then selection information completeness is improved, but memory requirements become excessive

Engineering Contradiction:
Improveselection information completenessVSAvoidmemory requirements
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent creates a minimal copy of selection information that stores only the selection state (selected/not selected) for each row using a compact boolean flag or bit representation. This selective copying preserves the essential selection information needed for grid operations while avoiding the memory overhead of storing complete row objects, images, or complex data structures for each selected row.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

Instead of storing complete row data and extracting selection information, the patent inverts the approach by storing only selection state information and retrieving or processing row data only when needed for specific operations. This inversion eliminates the need to maintain large amounts of selection-related data in memory while preserving the ability to access and manipulate selected rows.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11036710B2Scalable selection management
Publication Date: 2021.06.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11036710B2 patent drawing
  • US11036710B2 patent drawing
  • US11036710B2 patent drawing

AI summary

Architecture for handling large data selections with small and substantially constant memory footprints. The architecture facilitates the creation of sets of data objects (e.g., rows) of a data source based on selection of the data objects. The set structures can be defined according to a range (span) of data objects selected and a pattern of the objects selected. These set structures are then saved in memory, rather than the data objects, to provide optimized memory usage. In a database implementation, the solution stores the set representation (the structure) in nearly a constant amount of memory, regardless of the number of rows in the grid, and regardless of the number of rows selected. Memory usage can be proportional to the number of discontinuous spans of rows selected by the user. Structures in memory can be consolidated, replaced, or eliminated dynamically as the user changes row selections and pattern criteria.