Go to file
Trevor Hilton 0279461738
feat: hook up last cache to query executor using DataFusion traits (#25143)
* feat: impl datafusion traits on last cache

Created a new module for the DataFusion table function implementations.
The TableProvider impl for LastCache was moved there, and new code that
implements the TableFunctionImpl trait to make the last cache queryable
was also written.

The LastCacheProvider and LastCache were augmented to make this work:
- The provider stores an Arc<LastCache> instead of a LastCache
- The LastCache uses interior mutability via an RwLock, to make the above
  possible.

* feat: register last_cache UDTF on query context

* refactor: make server accept listener instead of socket addr

The server used to accept a socket address and bind it directly, returning
error if the bind fails.

This commit changes that so the ServerBuilder accepts a TcpListener. The
behaviour is essentially the same, but this allows us to bind the address
from tests when instantiating the server, so we can easily assign unused
ports.

Tests in the influxdb3_server were updated to exploit this in order to
use port 0 auto assignment and stop flaky test failures.

A new, failing, test was also added to that module for the last cache.

* refactor: naive implementation of last cache key columns

Committing here as the last cache is in a working state, but it is naively
implemented as it just stores all key columns again (still with the hierarchy)

* refactor: make the last cache work with the query executor

* chore: fix my own feedback and appease clippy

* refactor: remove lower lock in last cache

* chore: cargo update

* refactor: rename function

* fix: broken doc comment
2024-07-16 10:10:47 -04:00
.cargo chore: Upgrade to Rust 1.78.0 (#24953) 2024-05-02 13:39:20 -04:00
.circleci fix: only execute "build_dev" on non-fork branches (#25044) 2024-06-05 15:06:52 -04:00
.github chore: Remove dependabot for our repo (#24693) 2024-02-26 13:38:20 -05:00
assets chore: Update README for InfluxDB main repo (#25101) 2024-06-27 12:50:05 -04:00
docker fix: Add docker folder back for CI (#24720) 2024-02-29 16:47:41 -05:00
influxdb3 feat: hook up last cache to query executor using DataFusion traits (#25143) 2024-07-16 10:10:47 -04:00
influxdb3_client feat: Add `with_params_from` method to clients query request builder (#24927) 2024-04-29 13:08:51 -04:00
influxdb3_load_generator feat: QoL improvements to the load generator and analysis tools (#24914) 2024-04-15 10:58:36 -04:00
influxdb3_process fix: restore windows build to working state (#25131) 2024-07-09 11:11:09 -04:00
influxdb3_server feat: hook up last cache to query executor using DataFusion traits (#25143) 2024-07-16 10:10:47 -04:00
influxdb3_write feat: hook up last cache to query executor using DataFusion traits (#25143) 2024-07-16 10:10:47 -04:00
iox_query_influxql_rewrite feat: extend InfluxQL rewriter for SELECT and EXPLAIN (#24726) 2024-03-05 15:40:16 -05:00
.editorconfig chore: editor config spacing for shell scripts 2022-12-13 11:12:11 +01:00
.gitattributes feat: implement jaeger-agent protocol directly (#2607) 2021-09-22 17:30:37 +00:00
.gitignore chore: clean up heappy, pprof, and jemalloc (#24967) 2024-05-06 15:21:18 -04:00
.kodiak.toml chore: Set default to squash 2022-01-25 15:57:10 +01:00
CONTRIBUTING.md docs: rename influxdb_iox to influxdata (#24577) 2024-01-16 13:34:23 -05:00
Cargo.lock feat: hook up last cache to query executor using DataFusion traits (#25143) 2024-07-16 10:10:47 -04:00
Cargo.toml chore: sync latest core (#25138) 2024-07-10 12:25:09 -04:00
Dockerfile feat: build binaries and Docker images in CI (#24751) 2024-05-03 16:39:42 -04:00
Dockerfile.dockerignore fix: Readd the Dockerfile for the main branch (#24719) 2024-02-29 16:33:36 -05:00
LICENSE-APACHE fix: Add LICENSE (#430) 2020-11-10 12:10:07 -05:00
LICENSE-MIT fix: Add LICENSE (#430) 2020-11-10 12:10:07 -05:00
README.md chore: Update README for InfluxDB main repo (#25101) 2024-06-27 12:50:05 -04:00
SECURITY.md chore: tweak wording and don't reference gpg key in SECURITY.md (#24838) 2024-03-25 14:34:36 -05:00
deny.toml chore: upgrade to sqlx 0.7.1 (#8266) 2023-07-19 12:18:57 +00:00
rust-toolchain.toml chore: Update Rust to 1.79.0 (#25061) 2024-06-13 13:56:39 -04:00
rustfmt.toml chore: use Rust edition 2021 2021-10-25 10:58:20 +02:00

README.md

InfluxDB Logo

InfluxDB is the leading open source time series database for metrics, events, and real-time analytics.

Project Status

This main branch contains InfluxDB v3 in pre-release and under active development. Build artifacts are not yet generally available and official installation instructions will be coming later this year. For now, a Dockerfile is provided and can be adapted or used for inspiration by intrepid users.

Learn InfluxDB

Documentation | Community Forum | Community Slack | Blog | InfluxDB University | YouTube

Try InfluxDB Cloud for free and get started fast with no local setup required. Click here to start building your application on InfluxDB Cloud.

Installation

We have nightly and versioned Docker images, Debian packages, RPM packages, and tarballs of InfluxDB available on the InfluxData downloads page. We also provide the InfluxDB command line interface (CLI) client as a separate binary available at the same location.

If you are interested in building from source, see the building from source guide for contributors.

To begin using InfluxDB, visit our Getting Started with InfluxDB documentation.

License

The open source software we build is licensed under the permissive MIT and Apache 2 licenses. Weve long held the view that our open source code should be truly open and our commercial code should be separate and closed.

Interested in joining the team building InfluxDB?

Check out current job openings at www.influxdata.com/careers today!