Deep Pagination System for Distributed Data Retrieval
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed databases face performance degradation and latency issues due to deep pagination, which occurs when the number of data objects requested exceeds the system's limits, leading to excessive sorting costs and potential system unavailability.
Innovation Solution
Implement a deep pagination system that calculates the number of data objects to return and uses pagination to stream results in batches, tracking the final data object of each search to perform subsequent queries, thereby limiting the impact of deep pagination on the coordinating node.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If deep pagination is used to retrieve large numbers of data objects, then the quantity of data returned increases, but system performance deteriorates and latency increases
Solution Approach 1:
The patent segments the large data retrieval task into multiple smaller batches using pagination. Instead of retrieving all data objects in a single operation, the system divides the results into manageable pages (e.g., 1000 objects per batch) and retrieves them sequentially. This segmentation reduces the sorting and processing burden on the coordinating node for each individual request, thereby maintaining system performance while still enabling access to large quantities of data objects across multiple paginated requests.
2Quantity of substance
If deep pagination is used to return more data objects, then the quantity of results increases, but sorting costs and computational burden increase
Solution Approach 1:
The patent applies preliminary action by having shard nodes pre-sort and prepare their local data objects before returning them to the coordinating node. Each shard node performs initial sorting and filtering of its portion of the data, so that when results are aggregated at the coordinating node, less additional sorting is required. This preliminary processing at the shard level reduces the overall sorting costs and computational burden on the coordinating node, enabling efficient retrieval of large numbers of data objects.
3Productivity
If the number of results per request is increased, then more data is returned in fewer requests, but system availability and reliability decrease
Solution Approach 1:
The patent segments the data retrieval into multiple smaller paginated requests rather than attempting to return all results in a single large batch. Each paginated request handles a manageable number of objects (e.g., 1000 per page), which prevents any single request from overwhelming the system and causing failures. This segmentation improves system reliability by ensuring that individual requests remain within safe operational limits, while still enabling efficient retrieval of large datasets through sequential paginated access.
4Productivity
If conventional pagination limits are enforced, then system performance is maintained, but the ability to retrieve large datasets is limited
Solution Approach 1:
The patent creates a multi-functional system that can handle both small and large dataset retrieval scenarios using the same underlying mechanism. The deep pagination framework maintains the performance benefits of conventional pagination for small requests while extending capability to handle large datasets through automated multi-batch retrieval. The system universally applies pagination logic regardless of dataset size, adapting the number of batches automatically based on the total number of results, thus maintaining performance while increasing adaptability to handle datasets of any scale.
Data Source
AI summary
A server computing device receives, from a client device, a request for data objects. The server computing device calculates a number of data objects to be returned to the client device based on the request for data and performs a first query with a distributed search engine to search a distributed index for the data objects in the request based on at least a first portion of the number of data objects. The server computing device then write each data object from a first data object set returned by the distributed search engine from the distributed index to an output stream buffer and sends the data objects stored in the output buffer when a first condition is satisfied.


