Some of our batch calls are timing out when one of the calls within a batch call fails. Need some help understanding the logic behind batch calls.
Scenario:
We sent a batch request of size 49, all of these requests were sent to Alchemy which has been set up as secondary upstream in our case.
48 requests received a response, and 1 took ~10s, leading to HTTP Code error 499 (client closed request).
Dshackle logged only 48 of the 49 requests and our server timed out (timeout: 10s) waiting for the response.
All the failed batch requests have the same scenario mentioned above, requests get forwarded to secondary/fallback upstream, one of the requests fails/takes time, and the batch request fails.
Questions
Why wasn't the request sent to our primary upstream? From our metrics, it wasn't behind more than 1 block.
Is it possible not to split batch requests and send them to a single upstream?
Is there a retry mechanism for when a request within a batch request fails?
Is there anything we can do to prevent this? Any recommendations?
Some of our batch calls are timing out when one of the calls within a batch call fails. Need some help understanding the logic behind batch calls.
Scenario:
We sent a batch request of size 49, all of these requests were sent to Alchemy which has been set up as
secondary
upstream in our case.48 requests received a response, and 1 took ~10s, leading to HTTP Code error 499 (client closed request).
Dshackle logged only 48 of the 49 requests and our server timed out (timeout: 10s) waiting for the response.
All the failed batch requests have the same scenario mentioned above, requests get forwarded to secondary/fallback upstream, one of the requests fails/takes time, and the batch request fails.
Questions
Access Logs from Dshackle (showing 48 out of 49 requests with request id,
347c69aa-70a1-4986-a845-cbdbdd2b1fae
): dshackle-logs-347c69aa-70a1-4986-a845-cbdbdd2b1fae.csvRequest that we sent from our server: sent_request.txt
One request from the batch that was failed/delayed (format
... REQUEST_TIME <REQUEST> RESPONSE
):One of the requests from the batch that was successful: