I posted this dev forum question regarding QuerySQLCache:
We've had a few regression-type issues (
OPENJPA-660 & OPENJPA-731)
since the addition of QuerySQLCache in 1.2.0. While this cache has
shown to provide significant performance improvements for certain
scenarios, I think we should consider disabling the cache by default.
The main reason is the potential for future regression issues.
Another reason is that we didn't follow the pattern set by existing
caches. With the exception of the query compilation cache (which is
relatively static after queries are initialized), the other caches are
disabled by default. While the cache is supposed to be transparent,
it could (and has shown to) affect the behavior of an application that
has been working for quite some time on a prior release.
Arguably, QuerySQLCache may just need more rigorous testing. While
additional testing may help, testing every scenario is difficult and
if we miss one, regression issues due to performance enhancements are
pretty hard to swallow. I think a better approach is to allow users
to enable the cache if they choose to do so.
And received positive responses. The necessary updates will be made to disable the cache by default and committed to trunk.