You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/02/21 17:41:00 UTC
[jira] [Work logged] (HIVE-27097) Improve the retry strategy for Metastore client and server
[ https://issues.apache.org/jira/browse/HIVE-27097?focusedWorklogId=846699&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-846699 ]
ASF GitHub Bot logged work on HIVE-27097:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 21/Feb/23 17:40
Start Date: 21/Feb/23 17:40
Worklog Time Spent: 10m
Work Description: wecharyu opened a new pull request, #4076:
URL: https://github.com/apache/hive/pull/4076
### What changes were proposed in this pull request?
1. `RetryingMetaStoreClient` retry for only `TTransportException`.
2. `RetryingHMSHandler` skip some exceptions which always turn to fail even with retry.
### Why are the changes needed?
To avoid some unnecessary retry in client and server sides.
1. As a RPC client, `RetryingMetaStoreClient` should only retry for communication errors like transport and connection error.
2. When querying from DBS, `RetryingHMSHandler` do not need retry for some unrecoverable exceptions like `SQLIntegrityConstraintViolationException`.
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Add unit tests.
Issue Time Tracking
-------------------
Worklog Id: (was: 846699)
Remaining Estimate: 0h
Time Spent: 10m
> Improve the retry strategy for Metastore client and server
> ----------------------------------------------------------
>
> Key: HIVE-27097
> URL: https://issues.apache.org/jira/browse/HIVE-27097
> Project: Hive
> Issue Type: Improvement
> Components: Hive
> Affects Versions: 4.0.0-alpha-2
> Reporter: Wechar
> Assignee: Wechar
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> *Background*
> Hive provides *{{RetryingMetaStoreClient}}* and *{{RetryingHMSHandler}}* to do retry when thrift request failed:
> * RetryingMetaStoreClient will retry for *thrift related exception* and some *MetaException*
> * RetryingHMSHandler will retry for all {*}JDOException{*} or *NucleusException*.
> *Motivation*
> Current retry mechanism will lead to many unnecessary retries in both client and server. To simplify the process, we introduce following retry mechanism:
> * Client side only concerns the error of communication, i.e., {*}TTransportException{*}.
> * Server side can skip some exceptions which always turn to fail even with retry, like {*}SQLIntegrityConstraintViolationException{*}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)