Usage-Driven Indexing for Spreadsheet Data Stores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Spreadsheets and unstructured data stores face challenges in maintaining query performance as dataset sizes increase, due to lack of column constraints and data integrity, making traditional indexing techniques ineffective.

Innovation Solution

An adaptive indexing scheme is implemented that creates and maintains index structures for columns in spreadsheets, dynamically selecting indices based on query patterns and usage statistics to improve query efficiency without requiring strict column constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional indexing techniques are used in spreadsheets, then query performance can be improved, but column constraints and data integrity requirements increase system complexity

Engineering Contradiction:
Improvequery performanceVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system automatically creates and maintains index structures without requiring manual intervention or strict column constraints. The indexing mechanism self-adapts to the data patterns and query workloads, eliminating the need for complex data integrity rules while maintaining query performance

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The index structures are dynamically created and maintained based on actual query patterns and usage statistics rather than static pre-definition. The system adapts to changing data patterns and query workloads automatically, reducing the need for rigid column constraints

Inventive Principle:
Principle #15Dynamics

2Loss of time

If index structures are created for all columns, then query execution time is reduced, but memory and processing resources increase

Engineering Contradiction:
Improvequery execution timeVSAvoidresource consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Instead of creating indices for all columns, the system creates index structures only for columns that are frequently queried or have high selectivity. This partial indexing approach reduces memory and processing overhead while still providing significant query performance improvements for the most critical queries

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system dynamically adjusts indexing parameters such as index selection, index type, and maintenance frequency based on query patterns and workload characteristics. This allows the system to optimize the balance between query performance and resource consumption adaptively

Inventive Principle:
Principle #35Parameter changes

3Productivity

If adaptive indexing is implemented dynamically, then query efficiency improves, but initial setup and monitoring complexity increases

Engineering Contradiction:
Improvequery efficiencyVSAvoidindexing management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system continuously monitors query patterns and usage statistics, using this feedback to automatically adjust and optimize index structures. This closed-loop approach improves query efficiency over time while the automation reduces the perceived complexity for users

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11768818B1Usage driven indexing in a spreadsheet based data store
Publication Date: 2023.09.26 AMAZON TECH INC
  • US11768818B1 patent drawing
  • US11768818B1 patent drawing
  • US11768818B1 patent drawing

AI summary

Aspects described herein implement a usage-driven indexing scheme on a spreadsheet-based workbook. One aspect describes a system for implementing an indexing scheme in a spreadsheet workbook. The system comprises a processor configured to identify a plurality of cells stored in the plurality of tables, identify one or more table columns of the plurality of tables to index based on a usage parameter identified from a previously received query, generate an index for individual table columns of the identified table columns, receive the query including an operator and an identifier for at least one of the table columns, determine that the at least one of the table columns identified in the query has an index associated therewith, identify the index associated with the at least one of the table columns identified in the query, and identify a result to the query based on the identified index and the operator.