Dynamic Timeout Adjustment for Microservice Transaction Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed hybrid computing environments, determining whether a transaction has failed or is slow is ambiguous due to differing timeout values among services, leading to potential duplication of transactions and inefficient resource usage, as client applications may timeout prematurely despite downstream services completing within their designated timeframes.
Innovation Solution
A method to determine a dynamic timeout value for microservices by analyzing transaction data to identify trends in average timeout values and adjusting the common service timeout value based on a calculated timeout ratio, ensuring that all called microservices operate within an optimized timeframe, thereby reducing erroneous timeouts and resource wastage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the client application timeout value is set to always be higher than that of the service with the longest timeout value in the transaction chain, then the transaction completion rate is improved, but the system resource utilization deteriorates and user experience worsens due to unnecessarily long wait times
Solution Approach 1:
The patent implements dynamic timeout adjustment where the system continuously monitors actual transaction execution times and automatically adjusts timeout values accordingly. The timeout value is no longer fixed but adapts based on real-time performance data, allowing the system to optimize between reliability and resource utilization dynamically
Solution Approach 2:
The system establishes a feedback loop that monitors transaction completion status and timeout occurrences. Based on this feedback, the system learns from actual transaction patterns and adjusts timeout values to prevent both premature timeouts and excessive waiting, resolving the contradiction between reliability and productivity
2Reliability
If the client application timeout value is set to always be higher than that of the service with the longest timeout value in the transaction chain, then the transaction completion rate is improved, but the user experience deteriorates due to unnecessarily long wait times
Solution Approach 1:
The timeout value becomes a dynamic parameter that adapts to actual transaction needs rather than being statically set to the maximum possible value. This dynamic adjustment ensures users wait only as long as necessary, improving user experience while maintaining transaction completion rates
Solution Approach 2:
The system uses feedback from actual transaction execution to learn optimal timeout values for different transaction types and conditions, enabling it to provide responsive user experiences without sacrificing reliability
3Ease of operation
If a fixed timeout value is used for the client application, then the system operation simplicity is improved, but the adaptability to varying transaction requirements deteriorates
Solution Approach 1:
The system implements self-service timeout management where the timeout configuration automatically adjusts itself based on monitored transaction patterns without requiring manual intervention. This maintains operational simplicity while achieving high adaptability to varying transaction requirements
Solution Approach 2:
The timeout parameter is transformed from a fixed value to a dynamically changeable parameter that automatically adapts to different transaction requirements based on monitored performance data, resolving the contradiction between simplicity and adaptability
Data Source
AI summary
A processor may determine a microservice invocation hierarchy based on transaction data of a plurality of microservices of the microservice architecture. For execution of the application, a processor may configure the microservice architecture to call on common service having common service timeout values. A processor may plot transaction data of the microservice invocation hierarchy to identify an increase in average timeout value trend of each of the microservices of the at least one application over time. A processor may determine a value of the identified increase in a timeout ratio to be added to common service timeout value for each identified increase in the average timeout value trend in which an increase in timeout variation is present. A processor may implement a dynamic adjustment timeout value based on the identified increase in the timeout ratio to be added to common service timeout value of all called microservices of the application.


