Issue [InfluxDB] Crashing influxDB 2.1 with a simpel rule: previousState · Issue #11878 · openhab/openhab-addons · GitHub revealed that the current implementation of some PersistenceExtensions operations is not efficient for InfluxDB 2 using flux query language and are problematic with databases with a lot of data.
The problem is that some pattern like sort(desc) limit 1
doesn’t play well because sort
is not a push-down
function (see here) and forces a sort of all data with a lot of data retrieving.
I’ve done an optimization here detecting the sort(desc) limit 1
pattern and changing for last()
but the variant that wants a different value isn’t optimized because iterates with 1000 pagination.
Does anyone know why this strategy is used instead of using a limit 1 with a not equals filter criteria?
Also want to expose the problem because if new operations need to be developed it will be nice to try to avoid sort without limit 1 or a start date and possibly will be nice also to include persistence addons maintainers to discuss if the operators will play well in current query implementations.