suneet-s opened a new pull request #9403: Cache value when iterating over IndexedTableColumnValueSelector URL: https://github.com/apache/druid/pull/9403 The check for isNull and getting a primitive for the IndexedTableColumnValueSelector is almost identical. In several places throughout the code, selectors explicitly check if a value is null before getting the value. So the IndexedTableColumnValueSelector does double the work here. This change makes it so that the value is cached across calls. In local performance tests, the improvement on small segments (~ 100K) was within the margin of error on my laptop. Flamegraphs collected show that less time is being spent in getting the value from the selector, however the selector still needs to convert the raw object to the primitive type. This is where the selector spends most of it's time now. The primitive / object conversion appears to be a problem across other parts of the query interface as well. Trying to add support for primitives across this interface seemed like too large of a change to take on at this point in time.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
