You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the case of GROUP BY, we have multiple Map implementations, as well as RecordSink, in use depending on the exact query. This leads to virtual (vtable) and interface call tables (itable) overhead for each aggregated row. We could get rid of this overhead by generating bytecode of an anonymous class similar to how it's done in RecordSinkFactory and other similar classes.
As the first step, it should be enough to generate more specific aggregation methods, e.g. aggregateFileteredSharded and aggregateFilteredNonSharded, This way, Java filter calls will still suffer from monomorphism, but at least aggregation won't.
Describe the solution you'd like.
No response
Describe alternatives you've considered.
No response
Full Name:
Andrei Pechkurov
Affiliation:
QuestDB
Additional context
No response
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem?
Currently, we have several static methods used as
PageFrameReducer
for filtering and aggregation. One example:questdb/core/src/main/java/io/questdb/griffin/engine/table/AsyncGroupByRecordCursorFactory.java
Lines 327 to 370 in 703c42d
In the case of GROUP BY, we have multiple
Map
implementations, as well asRecordSink
, in use depending on the exact query. This leads to virtual (vtable) and interface call tables (itable
) overhead for each aggregated row. We could get rid of this overhead by generating bytecode of an anonymous class similar to how it's done inRecordSinkFactory
and other similar classes.As the first step, it should be enough to generate more specific aggregation methods, e.g.
aggregateFileteredSharded
andaggregateFilteredNonSharded
, This way, Java filter calls will still suffer from monomorphism, but at least aggregation won't.Describe the solution you'd like.
No response
Describe alternatives you've considered.
No response
Full Name:
Andrei Pechkurov
Affiliation:
QuestDB
Additional context
No response
The text was updated successfully, but these errors were encountered: