Repository navigation
Conversation
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
…ooling config Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Test Results129 files - 1 129 suites - 1 2m 58s ⏱️ -4s Results for commit 5960ad2. ± Comparison against base commit a403039. This pull request removes 2 and adds 2 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
NicoPiel
left a comment
There was a problem hiding this comment.
- No statement cache anymore: the app-level cache is removed, and nothing turns on the drivers' own caches for Oracle, MySQL or SQL Server. Every query on the message path is prepared again each time. The benchmark gains may come from fixing the leaks and hide this cost.
- Pool warning fires for hikari too: it warns whenever
database.poolis set to anything, includinghikari. The PR description says it only warns for values other than hikari. - Public API breaks:
DonkeyDao,ConnectionPool, theJdbcDaoconstructor andcreateConnectionPoolall change. Any third-party extension that implements or subclasses them will fail at runtime after upgrading. This needs a release note. - A few result sets are left out: five methods still don't put their result set in try-with-resources. It's harmless today, since closing the statement closes it, but it's inconsistent with the rest.
- Derby cache setting only in the launcher options:
derby.language.statementCacheSizeis set inbase_includes.vmoptions, so Docker images, service wrappers and tests that don't read that file won't get it. - Leftover dbcp2 references:
gradle/vendored-layout.jsonstill listscommons-dbcp2. - Dead code in tests: a line that sets the DAO factory to itself (
setDaoFactory(getDaoFactory())) and empty@Beforemethods were left in four test classes.
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
I think there's more nuance than that:
Any changes would require additional performance testing to identify cost/benefit. It's worth perf-testing on all backends - I am often wrong.
Fixed.
That's true - but I'd be shocked by third-party implementations. Maybe a release-notes section for plugin authors, but otherwise not worried about it.
Fixed.
I don't follow. As far as I'm aware, this is the vmoptions for all consumers.
Fixed.
Fixed. |
|
This seems to have been merged to main - though github does not show it. |
|
Tested main with this (a397c2c) against main just before it (4589238), on the things CI doesn't cover: upgrading a used 4.7.0 install, restarting with channels deployed, real MySQL, Microsoft's SQL Server driver, and sustained load. Databases: Derby, Postgres 18.3, MySQL 8.4, MariaDB 11.8, SQL Server 2022 (jTDS and Microsoft's driver), Oracle Free 23.
Nit: if someone has No speed numbers from us. Our test box is a busy shared VM, so we don't trust them either way. Co-authored with Claude Code. |
In load testing, there are many random failures that can be root-caused to:
Both of these are easy to avoid in current best practice of "use hikari" and "use try-with-resources". This PR mostly removes code in implementation of those premises.
Impact:
Advice for review: