Dynamic Blocking to Non-Blocking Call Conversion for Resource Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservice architectures, determining an appropriate timeout for service completion is complex due to varying server loads and API performance, leading to issues with resource allocation and debugging difficulties between client computing devices and servers, especially when transitioning between blocking and non-blocking calls.

Innovation Solution

A method and system that allow a client computing device to transmit a request with a timeout for a service, receiving updates from the server on service progress, and optionally converting the blocking call to a non-blocking call, enabling resource reallocation while maintaining monitoring and troubleshooting capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a blocking call is used to wait for service completion, then the client can monitor and debug service failures, but client computing resources are tied up indefinitely and cannot perform other tasks

Engineering Contradiction:
Improveservice completion monitoringVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a dynamic call type conversion mechanism that transitions the service call from blocking to non-blocking based on server processing status. Initially, the client establishes a blocking call to ensure proper resource allocation and monitoring capability. When the server acknowledges receipt and begins processing, the client converts the call to non-blocking mode, allowing resources to be freed while maintaining the ability to receive completion notifications. This dynamic adaptation resolves the contradiction between maintaining monitoring capability and enabling resource reuse.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies preliminary action by having the server send an acknowledgment message before the client releases its blocking wait. The server processes the service request and sends a notification to the client indicating that processing has begun. Upon receiving this acknowledgment, the client proactively converts the blocking call to non-blocking mode and releases its resources. This preliminary acknowledgment mechanism ensures that the client can safely transition to non-blocking mode without losing the ability to monitor service completion or debug failures.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a timeout is set for service completion, then resources can be released after expiration, but dissociation occurs between client and server where the server continues processing without notification capability

Engineering Contradiction:
Improveresource releaseVSAvoidservice completion notification
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements a feedback mechanism where the server actively notifies the client of service completion status. After the client converts to non-blocking mode and releases resources, the server continues processing in the background. When processing completes, the server sends a notification message back to the client, providing feedback on the service outcome. This feedback loop resolves the dissociation problem by ensuring the client receives completion information even after resource release, eliminating the need for timeout-based resource release while maintaining continuous communication.

Inventive Principle:
Principle #23Feedback

3Productivity

If all service requests are converted to non-blocking calls, then resource allocation is improved, but debugging and troubleshooting become more difficult

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoiddebugging capability
Core Design Contradiction:
ProductivityVSEase of repair

Solution Approach 1:

The patent implements a dynamic call type conversion mechanism that transitions the service call from blocking to non-blocking based on server processing status. Initially, the client establishes a blocking call to ensure proper resource allocation and monitoring capability. When the server acknowledges receipt and begins processing, the client converts the call to non-blocking mode, allowing resources to be freed while maintaining the ability to receive completion notifications. This dynamic adaptation resolves the contradiction between maintaining monitoring capability and enabling resource reuse.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies preliminary action by having the server send an acknowledgment message before the client releases its blocking wait. The server processes the service request and sends a notification to the client indicating that processing has begun. Upon receiving this acknowledgment, the client proactively converts the blocking call to non-blocking mode and releases its resources. This preliminary acknowledgment mechanism ensures that the client can safely transition to non-blocking mode without losing the ability to monitor service completion or debug failures.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11949748B1Method and system for managing a blocking call based on a timeout
Publication Date: 2024.04.02 CIENA CORP
  • US11949748B1 patent drawing
  • US11949748B1 patent drawing
  • US11949748B1 patent drawing

AI summary

Aspects of the subject disclosure may include, for example, transmitting a first message to a server. The first message includes a request for a service and a first timeout associated with the service. The request causes generation of a blocking call associated with the service on the client computing device. Further embodiments can include receiving, prior to the first timeout expiring, a second message from the server indicating that the service is in-progress, and transmitting a third message to the server. The third message comprises one of a first instruction to continue with the service as the blocking call or a second instruction to convert the blocking call to a non-blocking call associated with the service. Other embodiments are disclosed.