filodb / FiloDB

Distributed Prometheus time series database
Apache License 2.0
1.43k stars 225 forks source link

feat(core): Add Rust side of Tantivy query support #1835

Closed rfairfax closed 1 month ago

rfairfax commented 2 months ago

This contains the Rust code needed to support all query patterns for FiloDB. This is part 3 of the series and is not usuable end to end until additional PRs complete.

This PR splits the logic into a common tantivy library, where collectors and query extensions are implemented, and the filodb library, where specific JVM bridge methods and business logic exists.

The majority of this PR are custom collectors and caching to better match the performance of Lucene in the FiloDB use cases. The glue logic to connect these collectors to JVM methods are for the most part very straight forward - parse a query, run it, serialize results.

Pull Request checklist

Current behavior : (link exiting issues here : https://help.github.com/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests)

n/a

New behavior :

Adds query methods for Tantivy index. The Scala side of this will be in the next PR to glue it all together.