Description
Context
We are using dnsjava library in our high-performance production system that requires us to handle request within less than 1000ms.
From DNS library perspective, we are using single ExtendedResolver instance with multiple(8 in production environment, currently) SimpleResolvers to resolve DNS names using UDP transport.
Currently, we are still using v2.1.8 where SimpleResolver timeout resolution is 100ms.
ExtendedResolver is initiated with timeout of 100ms meaning, given production configuration, in worst-case scenario where only last DNS server address is up, it takes 700ms to complete the name resolution.
Problem
Recently, we tried to upgrade the library to the newest version(v3.5.2). Initially, we came across unexpected behaviour where each attempt to use inactive address would take 1000ms before using the next one, instead of 100ms(as in previous version). We then adapted the implementation to new timeout configuration(initiating set of SimpleResolvers with configured timeout of 100ms for each of them and leaving ExtendedResolver's timeout with default value of 10s, but we were still facing unexpected delay of 1s between every failed request.
Trying to find an explanation, we found this commit: ecff2a7#diff-e7c3e7095c50ede819690052d4f33ba68bc56a1885243c544f4d857a66bc5a65R57
Question
Could you, please, provide the reason for that change? Is there a way to make it configurable atleast? Unfortunately, in our case it means the new version of the library is unusable.
Best regards,
Rafal