Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Jena 2.11.1
-
None
Description
In investigating some optimiser caused performance regression issues that occurred after we upgraded at Cray to using 2.11.1 it was discovered that the new filter pushing was too aggressive for our backend in how it broke up BGPs/quadpatterns
Ideally we would like to use the filter placement mode where we place filters without breaking BGPs but as discussed in JENA-627 and JENA-628 (as well as other related issues) this behaviour is broken in the 2.11.1 release and indeed the specific problem query did get horribly mangled with this mode enabled.
I have been able to verify that the relevant fixes for those bugs means the affected query does now get optimised appropriately using the latest trunk code and I've added a sanitised version of the relevant query to the test cases.
However it would be nice if we had the option of switching back on the more conservative pre 2.11.1 filter placement behaviour if we desired. This is preserved in TransformFilterPlacement_Old and currently noted in comments that it will be removed in future.
What I propose to do instead is to rename this to TransformFilterPlacementConservative and add an associated optFilterPlacementConservative flag which when explicitly enabled will use the old filter placement behaviour rather than the newer more aggressive filter placement behaviour.
I'll attach a proposed patch for this later today