What changed in InfluxDB from 2 to 3

5 releases numbered after v2.9.1 up to and including v3.10.0, stable releases only. v2.9.1 and v3.10.0 are the newest stable releases of 2 and 3 we track; this page follows them as new ones ship.

39 changes across 5 releases

Added 19

v3.10.0

  • Catalog v3 automatically migrates to a compact binary format on first startup, reducing catalog size by approximately 5–6x compared to v2
  • Processing engine supports cross-database queries via the `database=` keyword argument on `influxdb3_local.query()`
  • Processing engine has trigger lockdown with new serve flags `--restrict-plugin-triggers-to` and `--plugin-dir-only` to restrict plugin behavior
  • GET /ready endpoint returns 200 OK when the server can reach object storage and 503 when it cannot
  • Always-on heap profiling enabled at startup with negligible overhead accessible at the pprof endpoint
  • influxdb3 debug catalog command allows inspecting catalog state offline directly from object storage without a running server
  • Row-level deletion via `influxdb3 delete rows` command to delete rows by time range and tag predicates, monitored with the `system.row_deletes` table
  • Backup and restore management via `influxdb3 create/status/show/delete/cancel backup` and `restore` commands plus matching `/api/v3/enterprise/backup` and `/restore` endpoints
  • Bulk import of generic Parquet files with `influxdb3 import upload` command mapping columns to InfluxDB types
  • User authentication and RBAC with username/password to JWT conversion, optional OAuth/OIDC, and three built-in roles (Admin, Auditor, Member)
  • 36 new `influxdb3_compactor_*` Prometheus metrics including `influxdb3_compactor_snapshot_lag_seconds` as the primary health signal

v3.9.0

  • Product identity in HTTP responses, metrics, HTTP response headers, and metadata now distinguish between Core and Enterprise builds

v3.4.0

  • Generate authentication tokens offline that can be loaded by the database at runtime if the tokens do not already exist for automated deployments and containerized environments
  • Specify the Azure endpoint for object-store connections using the --azure-endpoint parameter
  • Specify the no_sync option via the --no-sync parameter on CLI write commands

v3.3.0

  • Add admin token recovery server that allows regenerating lost admin tokens without existing authentication
  • Add --admin-token-recovery-http-bind option for running recovery server on separate port with automatic shutdown after successful token regeneration
  • Access trigger arguments for Process Engine triggers using the system.processing_engine_trigger_arguments table
  • Pass the git hash in build.rs using environment variables
Changed 8

v3.10.0

  • Object-store licenses are no longer bound to object-store config allowing bucket or store migration with the same license
  • `--pt-partition-count` flag renamed to `--pt-shard-count` with no alias
  • `/api/v2/write` endpoint now returns 403 for valid tokens lacking write permission instead of 401
  • Line-protocol parse errors on `/api/v2/write` now return 400 instead of 500

v3.9.0

  • Upgrade the embedded DataFusion query engine to DF 51 for more efficient query execution
  • Update the bundled Python runtime for processing engine plugins with the latest security and bug fixes

v3.4.0

  • TableIndexCache log output is now less verbose
  • WAL replay concurrency limit now defaults to number of CPU cores to prevent possible OOM
Fixed 11

v3.10.0

  • Compaction stability improvements including ingest-time, deadlock, write-amplification, and gen1 orphaning fixes

v3.9.0

  • Background resources such as processing engine triggers are now cleanly decommissioned when a database is removed

v3.4.0

  • Tag and field names are validated when creating tables
  • Using GROUP BY twice on the same column no longer causes incorrect data

v3.3.0

  • Fix URL encoded table name handling failures
  • Allow hard deletion of existing soft-deleted schema
  • Fix AWS S3 API error handling when tokens are expired
  • Set nanosecond precision as default for V1 query API CSV output
  • Mark --object-store CLI argument as explicitly required
  • Add help text for the new update subcommand

v3.0.3

  • Operator tokens can no longer be deleted
Security 1

v3.4.0

  • Removed unsafe signal_handler code

Original release notes, newest first

The list above is our reading of these notes; the originals from InfluxData are here, one fold per release.

v3.10.0v3.10.0 | 06-17-26

The following are some highlighted updates with the newest release for InfluxDB 3 Core and Enterprise. Learn more via our full Release Notes.

InfluxDB 3 Core Updates

Catalog v3: The on-disk catalog automatically migrates to a compact binary format (~5–6x smaller than v2) on first startup. Migration is automatic, idempotent, and crash-safe. Back up {prefix}/catalogs/ and {prefix}/_catalog_checkpoint before upgrading; the migration is one-way and 3.9.x binaries cannot read a v3 catalog.

Processing engine supports cross-database queries: Plugins can now read from any database using the database= keyword argument on influxdb3_local.query().

Processing engine now has trigger lockdown: New serve flags restrict plugin behavior; --restrict-plugin-triggers-to limits triggers to wal, schedule, or request, and --plugin-dir-only

GET /ready endpoint: Returns 200 OK when the server can reach object storage, 503 when it cannot; ideal for load balancer and orchestration readiness probes.

Always-on heap profiling: Enabled at startup with negligible overhead (~<1% CPU), accessible at the existing pprof endpoint. Disable with MALLOC_CONF=prof:false.

influxdb3 debug catalog: Inspect catalog state offline directly from object storage; no running server required.

InfluxDB 3 Enterprise Updates

All Core updates are included in Enterprise. The following are exclusive to Enterprise. Many of these require the new performance update preview (in beta); if using these features, they should not be included in production environments yet.

Row-level deletion: Delete rows by time range and tag predicates with influxdb3 delete rows. Deletion is asynchronous and applied by the compactor. Monitor with the system.row_deletes table. Requires --use-pacha-tree.

Backup and restore: Full backup and restore management via new influxdb3 create/status/show/delete/cancel backup and restore commands, plus matching /api/v3/enterprise/backup and /restore endpoints. Requires --use-pacha-tree and a compactor node with an admin token.

Bulk import: Import generic (non-IOx) Parquet files with influxdb3 import upload, mapping columns to InfluxDB types via --column flags. Track jobs with influxdb3 import list.

User auth and RBAC (preview): Multi-user authentication with username/password → JWTs, optional OAuth/OIDC, and three built-in roles (Admin, Auditor, Member). Off by default (--without-user-auth true).

Object-store license portability: Licenses are no longer bound to object-store config (type, bucket, endpoint, region) — validation enforces only signature, expiry, and licensed core count. You can move buckets or stores with the same license.

Observability: 36 new influxdb3_compactor_* Prometheus metrics, with influxdb3_compactor_snapshot_lag_seconds as the primary health signal.

Breaking Changes
  • Catalog v3 migration is one-way: Back up your catalog before upgrading (see above).
  • --pt-partition-count renamed to --pt-shard-count; there's no alias, so update startup scripts.
  • /api/v2/write returns 403 (was 401) for valid tokens lacking write permission; line-protocol parse errors now return 400 (was 500).
Bug Fixes
  • Compaction stability improvements (ingest-time, deadlock/write-amplification, gen1 orphaning, and upgrade-blocking fixes), plus several other bug fixes and performance improvements.

  • Many other bug fixes and performance improvements

Full Changelog: https://github.com/influxdata/influxdb/compare/v3.9.3...v3.10.0

View originalPermalink

v3.9.0v3.9.0 | 04-02-26

The following are some highlighted updates with the newest release for InfluxDB 3 Core. Learn more via our full Release Notes.

Note: This is the first GitHub "release" in a while (since 3.4.0), however there have been many releases since then; you can find those additional notes in the Release Notes as well to learn about all of what has been updated. These changes reflect the differences between 3.8.4 and 3.9.0.

Updates

DataFusion upgrade: Upgraded the embedded DataFusion query engine to DF 51 for more efficient query execution.

Python runtime upgrade: Updated the bundled Python runtime for processing engine plugins with the latest security and bug fixes.

Product identity in HTTP responses: Metrics, HTTP response headers, and metadata now distinguish between Core and Enterprise builds.

Database lifecycle hardening: Background resources such as processing engine triggers are now cleanly decommissioned when a database is removed.

Bug Fixes
  • Several bug fixes and performance improvements

Full Changelog: https://github.com/influxdata/influxdb/compare/v3.8.3...v3.9.0

View originalPermalink

v3.4.0v3.4.0 | 08-26-25

The following are some highlighted updates with the newest release for InfluxDB 3 Core. Learn more via our full Release Notes.

Updates

Token Provisioning: You can now generate authentication tokens offline that can then be loaded up by the database at runtime if the tokens do not already exist, which works great for automated deployments and containerized environments. (#26734)

Azure Endpoint: You can now specify the Azure endpoint for object-store connections using the --azure-endpoint parameter (#26687)

No_Sync via CLI: The no_sync option can now be specified with the --no-sync parameter via the CLI on write commands (#26703)

Bug Fixes
  • Tag and field names are validated when creating tables (#26641)
  • Using GROUP BY twice on the same column no longer causes incorrect data (#26732)
Security & Misc
  • Overly verbose TableIndexCache log is now quiet (#26709)
  • WAL replay concurrency limit now defaults to number of CPU cores, preventing possible OOM (#26715)
  • Unsafe signal_handler code removed (#26685)
  • Python version upgraded to 3.13.7-20250818 (#26686, #26700)

Full Changelog: https://github.com/influxdata/influxdb/compare/v3.3.0...v3.4.0

View originalPermalink

v3.3.0v3.3.0 | 07-30-25

The following are some highlighted updates with the newest release for InfluxDB 3 Core. Learn more via our full Release Notes.

Updates

Authentication and security: Add admin token recovery server that allows regenerating lost admin tokens without existing authentication. Includes new --admin-token-recovery-http-bind option for running recovery server on separate port, with automatic shutdown after successful token regeneration (#26594)

Process Engine Trigger Arguments: You can access the trigger arguments for Process Engine triggers using the system.processing_engine_trigger_arguments table [#26604]

Passing git hash via env: Using environment variables, you can now pass the git hash in build.rs [#25266]

Fixes

Database reliability:

  • Fix URL encoded table name handling failures (#26586)

  • Allow hard deletion of existing soft-deleted schema (#26574)

Authentication: Fix AWS S3 API error handling when tokens are expired (#1013)

Query processing: Set nanosecond precision as default for V1 query API CSV output (#26577)

CLI reliability:

  • Mark --object-store CLI argument as explicitly required (#26575)
  • Add help text for the new update subcommand (#26569)
New Contributors

Full Changelog: https://github.com/influxdata/influxdb/compare/v3.2.1...v3.3.0

View originalPermalink

v3.0.3v3.0.3 | 05-16-25

Learn more via our full Release Notes.

Fixes

Operator tokens can no longer be deleted. [#26418]

Full Changelog: https://github.com/influxdata/influxdb/compare/v3.0.2...v3.0.3

View originalPermalink