Flow Control in Large Query Result Sets Using Release Messages
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-tier server networks, effective flow control is challenging due to unbounded data accumulation in buffers, especially when the network layer lacks flow control mechanisms, leading to issues where data from multiple server processes exceeds the client's consumption rate.
Innovation Solution
Implementing a method and apparatus for flow control that involves remote procedure calls (RPCs) between computers to monitor and manage data transmission, using release signals to synchronize data transfer and prevent buffer overflow, thereby pacing data aggregation at the application layer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is transmitted continuously from server processes to client, then data transmission speed is improved, but buffer overflow occurs when client consumption rate is slower than server production rate
Solution Approach 1:
The patent implements a feedback mechanism where the client sends release messages to the coordinator server indicating when it is ready to receive more data. The coordinator server monitors these release messages and only transmits data when the client has signaled readiness, preventing buffer overflow while maintaining efficient data transmission.
Solution Approach 2:
The client performs preliminary action by sending a release message before the server transmits data. This advance signaling allows the server to prepare and transmit data at the optimal moment, ensuring the client is ready to receive and process it without overflow issues.
2Reliability
If flow control is implemented at network layer, then data transmission reliability is improved, but device complexity increases when network layer lacks native flow control
Solution Approach 1:
The patent introduces a coordinator server as an intermediary between the client and worker servers. This coordinator manages the flow control logic, receiving release messages from the client and coordinating data transmission from workers. This intermediary approach simplifies the overall system by centralizing flow control rather than implementing complex distributed flow control across all components.
Solution Approach 2:
The system segments flow control functionality into distinct components: the client generates release messages, the coordinator server processes these messages and manages data flow, and worker servers transmit data only when authorized. This segmentation makes the flow control mechanism more manageable and less complex than a monolithic approach.
3Productivity
If multiple worker servers transmit data simultaneously to client, then productivity is improved, but coordination difficulty increases in multi-tier architecture
Solution Approach 1:
The coordinator server acts as an intermediary that receives release messages from the client and distributes authorization to multiple worker servers. This allows workers to transmit data simultaneously and efficiently while the coordinator maintains centralized coordination, managing the complexity of multi-server coordination without reducing productivity.
Solution Approach 2:
The patent merges the flow control logic for multiple worker servers into a single coordinator server. Instead of each worker independently coordinating with the client, all workers channel their flow control through the coordinator, which consolidates the release message processing and data transmission authorization, simplifying multi-server coordination.
Data Source
AI summary
Apparatuses and methods for providing flow control over a network are disclosed. One such method comprises receiving a first remote procedure call at a first computer from a second computer remote from the first computer, the first computer including a first memory and a first processor configured to execute instructions stored in the first memory, generating a second remote procedure call from the first processor to the second computer, the second remote procedure call responsive to the first remote procedure call, monitoring the first processor for receipt of a release signal from the second computer, the release signal indicating when the second computer is able to receive data responsive to the first remote procedure call, and transmitting the data from the first memory of the first computer to the second computer responsive to receipt of the release signal at the first processor.


