Eager Block Fetching for Web Data Grids

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current web applications using virtualized scrolling in data grids face inefficiencies due to a single block size parameter that is not optimal for all scroll events, leading to multiple roundtrips between the client and server during long scrolls, causing delays and unresponsive scrolling experiences.

Innovation Solution

Implementing a mechanism to differentiate between short and long scrolls, allowing the server to fetch a first amount of data based on one set of parameters for short scrolls and a second amount based on additional parameters for long scrolls, such as a larger data block size or 'megablock', to optimize data retrieval and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a single block size parameter is used for data fetching, then device complexity is reduced and ease of operation is improved, but scrolling performance deteriorates during long scrolls due to multiple roundtrips

Engineering Contradiction:
Improveease of operationVSAvoidscrolling performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system dynamically adjusts the block size parameter based on the detected scroll type. For short scrolls, a smaller block size is used; for long scrolls, a larger block size is used. This dynamic adaptation resolves the contradiction by allowing the system to maintain operational simplicity while optimizing scrolling performance for different user behaviors.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the block size parameter according to the scroll event characteristics. By detecting whether a scroll is short or long and adjusting the block size accordingly, the system improves scrolling performance without significantly complicating the overall operation, thus resolving the contradiction between ease of operation and scrolling performance.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If a smaller block size is used, then memory usage is reduced and initial load time is improved, but multiple roundtrips are required during long scrolls causing delays

Engineering Contradiction:
Improvememory usageVSAvoidscrolling delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system dynamically adjusts block size based on scroll distance. For long scrolls, it switches to a larger block size to reduce the number of roundtrips and associated delays, while for short scrolls it maintains a smaller block size to conserve memory. This dynamic approach resolves the contradiction between memory usage and scrolling delay.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The block size parameter is changed based on the detected scroll type. When a long scroll is detected, the system increases the block size parameter to fetch more data in each roundtrip, thereby reducing total scrolling delay while still managing memory usage effectively through selective parameter adjustment.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If a larger block size is used, then fewer roundtrips are required for long scrolls improving responsiveness, but more client side memory is consumed

Engineering Contradiction:
Improvescrolling responsivenessVSAvoidclient side memory
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system uses a dynamic block size that adjusts based on the scroll event. For long scrolls, a larger block size is applied to improve responsiveness by reducing roundtrips. For short scrolls, a smaller block size is used to minimize memory consumption. This conditional parameter adjustment resolves the contradiction between scrolling responsiveness and memory consumption.

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If virtualized scrolling is implemented to conserve memory, then initial load time is improved, but scrolling performance deteriorates due to frequent server roundtrips

Engineering Contradiction:
Improvememory consumptionVSAvoidscrolling performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The invention introduces dynamic block size adjustment within the virtualized scrolling framework. By detecting scroll type and adapting the block size, the system maintains the memory-saving benefits of virtualized scrolling while improving scrolling performance through optimized data fetching strategies that reduce unnecessary roundtrips.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The block size parameter is dynamically changed based on scroll characteristics. This parameter adjustment allows the system to maintain virtualized scrolling's memory efficiency while optimizing scrolling performance by fetching appropriate amounts of data in each roundtrip, thus resolving the contradiction between memory consumption and scrolling performance.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8965963B2Eager block fetching for web-based data grids
Publication Date: 2015.02.24 ORACLE INT CORP
  • US8965963B2 patent drawing
  • US8965963B2 patent drawing
  • US8965963B2 patent drawing

AI summary

Techniques for improving scrolling performance in a web-based data grid. In one set of embodiments, when a user scrolls through a data grid rendered in a viewport of the user's web browser, client-side code executing in the web browser can detect whether a scroll event has occurred that requires a portion of the viewport to be filled/refreshed with data from a server. The client-side code can further determine whether the scroll event is a short scroll or a long scroll, and can send a request to the server that indicates the type of scroll event. If the scroll event is a short scroll, the server can determine a first amount of data to fetch based on one or more first parameters. If the scroll event is a long scroll, the server can determine a second amount of data to fetch based on one or more second parameters.