-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[fast-client] Complete error retry for fast client multi-get (#892)
* [fast-client] Complete error retry for fast client multi-get 1. Error retry was already covered by long tail retry. This means we have error retry at the request level and not at the per route level. This means keys that are not done yet by the long tail retry threshold time will be retried regardless if it's due to latency or error. We have unit tests for various scenarios to complete the table: original request | retry request fail | fail fail | success late success | fail late success | success 2. Added the ability to differentiate 429 from other errors so retry is skipped altogether if we encountered 429 (assuming subsequent retry will also be rejected).
- Loading branch information
Showing
7 changed files
with
229 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 6 additions & 2 deletions
8
...client/src/main/java/com/linkedin/venice/fastclient/RetriableAvroSpecificStoreClient.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,16 @@ | ||
package com.linkedin.venice.fastclient; | ||
|
||
import com.linkedin.alpini.base.concurrency.TimeoutProcessor; | ||
import com.linkedin.venice.client.store.AvroSpecificStoreClient; | ||
import org.apache.avro.specific.SpecificRecord; | ||
|
||
|
||
public class RetriableAvroSpecificStoreClient<K, V extends SpecificRecord> extends RetriableAvroGenericStoreClient<K, V> | ||
implements AvroSpecificStoreClient<K, V> { | ||
public RetriableAvroSpecificStoreClient(InternalAvroStoreClient<K, V> delegate, ClientConfig clientConfig) { | ||
super(delegate, clientConfig); | ||
public RetriableAvroSpecificStoreClient( | ||
InternalAvroStoreClient<K, V> delegate, | ||
ClientConfig clientConfig, | ||
TimeoutProcessor timeoutProcessor) { | ||
super(delegate, clientConfig, timeoutProcessor); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.