-
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
base: master
Are you sure you want to change the base?
Conversation
6bb28b6
to
aad4408
Compare
aad4408
to
efb4bf5
Compare
Pull Request Test Coverage Report for Build #421Details
💛 - Coveralls |
a38cdee
to
b5fba64
Compare
b5fba64
to
f976bdd
Compare
# Conflicts: # build.gradle
This comment was marked as resolved.
This comment was marked as resolved.
…mas and structure
6e64ea4
to
d4317c8
Compare
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
This comment was marked as outdated.
This comment was marked as outdated.
…em for validation
530b249
to
d0c231a
Compare
next steps:
|
d0c231a
to
85db2a0
Compare
…experiments # Conflicts: # build.gradle # src/main/java/edu/kit/datamanager/pit/web/impl/TypingRESTResourceImpl.java
…current state of the APIs
…validation error to the user, not as a PidNotFoundError.
…l attributes, now default to true.
Note: Something is wrong with the CI.
Ideas to fix this:
|
0b8163a
to
7349a0c
Compare
I changed the async executor to be single threaded, and now it "hangs" here:
Which gives exactly no clue. But I seem to be able to reproduce the issue now locally: All tests I checked run infinitely. I think this is because the way "async" works in java it is not solvable using a single thread (blocking tasks). And this is again because I spawn new tasks from existing ones, wait for a task to finish here and there, etc. Is this the same issue in the CI, though? If so, I guess it is the fault of the java implementation? Turns out: No. The single thread executor is seemingly not able to interrupt tasks, which means you can quickly get into deadlocks depending on the complexity of your task. A task that spawns more tasks and need them befor finishing, running on the same executor, won't work. But this is what I currently do. This is why other issues appeared on both sides. But it had not directly something to do with the CI issue. The solution was to move in the CI from OpenJDK "zulu" to "temurin". Temurin is also what we use in our docker container. The virtual thread executor of zulu seems to behave differently than the openJDK that homebrew provides. In any case, I am planning some additional changes after cleaning up my WIP mess:
|
7349a0c
to
865261f
Compare
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.create?dryrun=true&profile=a&profile=b