Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
3.4.1
-
None
-
Client on Windows 10, Server on Ubuntu
Description
We are trying to update to the latest ConnectorJ version: 3.3.2 -> 3.5.3
We are running version 10.6.22 of the MariaDB server.
When our application starts we read in the Database meta data to check it is as expected.
From version 3.4.1 onwards we have noticed that the DatabaseMetaData.getExportedKeys is much slower than is previous version. It is 10 times slower. We go from about 10ms to 100ms per table.
As we have identified the version the change appears in we have gone through the change log. Some work seems to have been done on improving performance on calls to getExportedKeys (CONJ-1180).
Something in this release has unfortunately had the opposite effect for us. What could we be doing wrong? All I changed to move to the newer version is replace the jar. I can not find any information in the tickets suggesting that we should also change the way we make the calls.
This adds 22 seconds each time we extract the DataBaseMetadata information. We must be doing something wrong but can not find any information on what the correct way would be.
Through Zulip (https://mariadb.zulipchat.com/#narrow/channel/118759-general/topic/ConnectorJ.20DatabaseMetaData.2EgetExportedKeys.20slow/with/523258709) I got the information that I could use the old mechanism in the latest driver using option getExportedKeysUsingIs=true. This has unblocked us for the moment.
After looking at the code, I am wondering if the new default behavior is having a timeout (as it is systematically just over 100ms) and then reverting to the previous behavior. As there is no log or debug in the exception handling it is difficult to tell.
Kind regards,
Daniel