-
-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix concurrency issues in Performance Stats code #4910
Fix concurrency issues in Performance Stats code #4910
Conversation
%test:assertXPath("$result//stats:index[@type = 'range'][@optimization = 2]") | ||
%test:assertXPath("$result//stats:index[@type eq 'range'][@optimization-level eq 'Optimized']") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will code that expects the performance stats to return <stats:index optimization="2">
need to be updated to read <stats:index optimization-level="Optimized"/>
etc.? Monex, for example reads @optimization
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@joewiz yes, indeed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmmmm ok. then we need to have a plan to update monex here as well, whilst keeping that app compatible with older exist versions?
Codewise it looks OK to me. Better JMX support? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
build fails :-(
a405132
to
783cbdd
Compare
Please update the description of this PR to include information about the breaking change(s) that it introduces. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR introduces breaking changes and fails to communicate that clearly in the commit messages.
Please extract the breaking changes into a single commit so that we can discuss them separately.
This is not something we have ever done before! So why do you believe that this PR is "special" in some way to any others that target an upcoming major release? |
As the changes are not necessary to fix concurrency issues they should not be part of this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah ok, so some additional updates need to be put in place in apps to keep things compatible.
When has that ever been a requirement of PRs against a major version? It might be sensible to put them in separate commits perhaps, but separate PRs is unnecessary! |
exist-core/src/main/java/org/exist/xquery/PerformanceStats.java
Outdated
Show resolved
Hide resolved
exist-core/src/main/java/org/exist/xquery/PerformanceStats.java
Outdated
Show resolved
Hide resolved
b138c00
to
eebf365
Compare
@adamretter In yesterdays community call I was convinced that speaking labels are favourable over magical integer constants. We also found that the attribute name returned by the stats package should stay |
I intentionally changed this because it was misleading. It does not describe the optimization that was performed, which is what it previously implied. Rather it describes the "level of optimization" that was able to be applied - and this is how it was described in the Java code. So I corrected it so that it actually reflects what it is. |
eebf365
to
c769150
Compare
during the teleconference we talked about the naming: enum IndexOptimizationLevel { OptimizationLevel= OPTIMIZED does not reflect i kind of "amount" of optimisation was applied. "FULL" would do that much better, or "OPTIMAL". Maybe it is a kind language thingy ? |
I am not sure that makes sense as these optimizations are index guided. As this has been open now for 6 months, and is a clear improvement on the status quo, I suggest we just merge this and move on; rather than splitting hairs over naming! It can always be improved in the future as can everything else in eXist-db. @dizzzz @reinhapa Can you discuss together, and consider merging this please? |
SonarCloud Quality Gate failed. 1 Bug 72.4% Coverage Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
Does this require an money update? if not, I am happy. |
@dizzzz I am happy to receive any money! |
I ment.... Monex :-P |
1ee9ba7
to
c8242fc
Compare
@dizzzz Yes, see the discussion here: #4910 (comment) |
@reinhapa Would you mind adding a review please? |
Thnx @adamretter; One (important) question remains... with the change, is Monex still working? ( @joewiz ) |
@dizzzz I don't know if Monex is still working, I think it may be possible that Monex will need a small change, but I have not tested Monex and I am not really involved in its development; so it is probably best to get one of the Monex developers to test/fix it once this PR has been merged. I did try and answer this before, but perhaps I wasn't clear enough (See here and here) |
The changes to Monex should be straightforward. I've opened an issue for this: eXist-db/monex#273. |
Fix failing Range Index test after merge of #4910
With the merge there were still issues ? Can't check well on my phone ... |
Cleanup the code and fix concurrency issues in the Performance Stats code