Intelligent Data Caching for Client-Server Paging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Client devices face challenges in displaying large datasets due to screen size limitations, leading to inefficient data transfer and processing, and potential conflicts when multiple users edit data simultaneously.
Innovation Solution
Intelligent data caching system that sends only the necessary data to the client, using query handles and row identifiers to manage paging and synchronization, reducing data traffic and processing load while ensuring up-to-date data display.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If the server sends all query results to the client, then the client has complete data, but data traffic and processing load increase significantly
Solution Approach 1:
The patent divides the complete query result set into multiple pages, where each page contains a subset of data records. The server sends only the current page to the client rather than all results at once. This segmentation allows the client to display data in manageable portions while reducing data traffic and processing load on the client device.
Solution Approach 2:
The server performs preliminary actions by pre-calculating and sending row identifiers along with the data records in each page. This allows the client to efficiently navigate and retrieve specific data pages without requiring the server to send the entire result set, thereby reducing data traffic while maintaining data accessibility.
2Loss of information
If the client displays all data records, then the user sees complete information, but the display screen cannot accommodate the data
Solution Approach 1:
The patent segments the data records into multiple pages, where each page contains a limited number of records that can be displayed on the screen. The client displays only the current page at a time, allowing the user to view data in manageable portions that fit the display screen area.
Solution Approach 2:
The patent introduces pagination as an additional dimension for data presentation. Instead of displaying all records in a single view, the system organizes data into sequential pages with navigation controls, allowing users to move through data in a structured manner that accommodates limited display space.
3Productivity
If the client processes all data locally, then data processing is complete, but processing time and resources increase
Solution Approach 1:
The patent extracts the data processing task from the client by implementing server-side pagination. The server handles the complex task of querying the database, calculating result sets, and dividing data into pages. The client only receives and displays the current page, significantly reducing processing time and resource requirements on the client device.
Solution Approach 2:
The server acts as an intermediary between the database and the client. It performs the heavy lifting of data retrieval, processing, and pagination, then delivers only the necessary data to the client. This intermediary approach reduces the processing burden on the client while maintaining efficient data access.
4Reliability
If the system displays data in real-time, then data is up-to-date, but data conflicts occur during collaborative editing
Solution Approach 1:
The patent segments data into pages with specific row identifier ranges. When multiple users edit data, the system can identify which pages are affected and send updates only to those specific pages rather than redistributing the entire data set. This reduces the scope of potential conflicts while maintaining real-time data freshness.
Solution Approach 2:
The system implements a feedback mechanism where changes made by one user are detected and communicated to other users. The server tracks modifications and sends targeted updates to clients, allowing real-time synchronization while managing conflicts through controlled feedback loops that notify users of changes in specific data sections.
Data Source
AI summary
Methods, program products, and systems implementing intelligent data caching are disclosed. A client can send a request for data to a server. The request can include a query and a query context. The query can retrieve more data than can be displayed in a current page. The query context can specify a quantity of data records that can be displayed in the current page. The client can receive from the server two sets of data in response to the request. The first set of data can include row identifiers of data records that satisfy the query. The second set of data can include data records that can be displayed in the current page. The client can store the two sets of data in one or more buffers (e.g., two buffers) and update buffer(s) when different data records are displayed (e.g., when a user scrolls through pages).


