Database Selection Management via Span and Pattern Structures
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Loss of information
If complete row data is stored to track selected rows, then selection information completeness is improved, but memory requirements become excessive
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.
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.
Data Source
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.


