-
Notifications
You must be signed in to change notification settings - Fork 13
fix: update matching-stats don't resolve unneeded objects #3824
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
Conversation
| log.debug("BEGIN calculating for `{}`", concept.getId()); | ||
| private static Map<ConceptElementId<?>, MatchingStats.Entry> calculateConceptMatches(ConceptId conceptId, Worker worker) { | ||
|
|
||
| try(Stream<CBlock> allCBlocks = worker.getStorage().getAllCBlocks()) { |
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.
@awildturtok das getAllCBlocks() habe ich durch ein getAllCBlockIds() ersetzt
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.
ist das der Teil von dem du dir die Performance gains erhoffst?
Ich bin mir nicht sicher, was es erreichen soll. Du verschiebst die Operation ja nur. Wobei du vlt durch die äußere Concurrency eine bessere IO Verteilung hast?
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.
Bisher sind wir für jedes Concept über alle CBlocks gelaufen nur um hier die meisten zu skippen.
Jetzt skippen wir über die meisten Ids und resolven nur die CBlocks die auch zu den Connectoren des Concepts passen für das gerade die matching Stats laufen. Da das alles async/parallel ausgeführt wird hatten wir vorher auch nicht umbedingt einen seriellen IO weil jeder Task zu unterschiedlicher Zeit den Storage von vorne resolved hat.
Um den IO seriell zu machen müssten wir nicht in der äußersten Loop/Stream über die Concepts laufen sondern über die Cblocks. Dann könnten wir aber erst beim letzten CBlock die ersten MatchingStats zurückliefern.
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.
ahhh, ich hatte nicht gesehen, dass das in einer schleife ist. Super
| log.debug("BEGIN calculating for `{}`", concept.getId()); | ||
| private static Map<ConceptElementId<?>, MatchingStats.Entry> calculateConceptMatches(ConceptId conceptId, Worker worker) { | ||
|
|
||
| try(Stream<CBlock> allCBlocks = worker.getStorage().getAllCBlocks()) { |
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.
ist das der Teil von dem du dir die Performance gains erhoffst?
Ich bin mir nicht sicher, was es erreichen soll. Du verschiebst die Operation ja nur. Wobei du vlt durch die äußere Concurrency eine bessere IO Verteilung hast?
No description provided.