-
Notifications
You must be signed in to change notification settings - Fork 5
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
Type-Api support and validation speedup #218
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pfeil
force-pushed
the
validation-speedup-experiments
branch
7 times, most recently
from
August 28, 2024 23:20
6bb28b6
to
aad4408
Compare
Pfeil
force-pushed
the
validation-speedup-experiments
branch
from
August 29, 2024 12:53
aad4408
to
efb4bf5
Compare
Pfeil
force-pushed
the
validation-speedup-experiments
branch
3 times, most recently
from
August 29, 2024 15:02
a38cdee
to
b5fba64
Compare
Pfeil
force-pushed
the
validation-speedup-experiments
branch
from
August 29, 2024 15:30
b5fba64
to
f976bdd
Compare
# Conflicts: # build.gradle
This comment was marked as resolved.
This comment was marked as resolved.
…mas and structure
Pfeil
force-pushed
the
validation-speedup-experiments
branch
from
November 16, 2024 00:49
6e64ea4
to
d4317c8
Compare
Pfeil
changed the title
Validation speedup experiments
Type-Api support and validation speedup
Nov 16, 2024
Pfeil
force-pushed
the
validation-speedup-experiments
branch
3 times, most recently
from
November 19, 2024 19:53
4b57404
to
6b07c6f
Compare
- support for records without profiles - support for records with multiple profiles - support for multiple profile attribute keys/types - support for additional attributes - in general, attribute validation and profile validation are now separate tasks
Closed
Closed
This is useful for deployment, but also to see in benchmarks if the parameter has been set properly.
Pfeil
force-pushed
the
validation-speedup-experiments
branch
from
January 21, 2025 23:55
991e6ae
to
0aada09
Compare
Benchmark resultsThese are the first observations from the benchmark results:
The last assumption seems to hold. Some logging excerpts from the benchmarks (note: the logging is only done if a request takes more than 400ms, which is quite tolerant):
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I replaced the guava cache with
an asyncparallel (no real async in java) cache with higher performance.Some tests do not succeed yet, because the details field is missing in some exception bodies. Not sure why it happens, but it is probably simple to fix and enough to do some speedup experiments.This PR will last until we have a stable and significant performance gain (at least down to 25% or something) and have integrated all low-hanging fruits.
This requires some refactorings in very old parts of the Typed PID Maker, where I want to get rid of a lot of code.
not supported by EOSC DTR, so we currently do not support it per profile until a DTR with support for this comes up.Benchmarking:
pit.typeregistry.cache.maxEntries = 0
should be enough for our case.We can do some analysis, maybe with a flame graph (like here) or VisualVM.Profile-Preloading?: Define a set of PIDs which will regularly be updated (and on application startup). For example, search for profiles containing the setting which indicates which is the profile attribute, or just resolve all DTR profiles.Now that we have async and some proper approaches, this sounds more like a hack to me.Issues to report in external repositories:
Make issues for changes which shall be done in extra PRs:
create?dryrun=true&profile=a&profile=b
. Note that it must work and be well tested together with the other parameters, like dryrun and validate.Finishing tasks: