InfluxDB 3 Core release notes
InfluxDB 3 Core and Enterprise relationship
InfluxDB 3 Enterprise is a superset of InfluxDB 3 Core. All updates to Core are automatically included in Enterprise. The Enterprise sections below only list updates exclusive to Enterprise.
v3.11.0
Core
Features
Async trigger concurrency limit: The new
--async-trigger-concurrency-limitoption caps the number of concurrent invocations for an asynchronous processing engine trigger. The default is unlimited.Processing engine retry behavior for asynchronous triggers: When
trigger_settings.run_async = true, a failed trigger invocation now retries up to 5 times before being discarded. Previously, failed invocations retried indefinitely.WAL triggers skip empty flushes: A WAL trigger no longer runs when the WAL flush it would process is empty. Previously, the trigger ran on every flush, including empty ones.
Disabled trigger state persists across restarts: When
trigger_settings.error_behavior = disabledisables a trigger, the disabled state now survives a server restart. Previously, a disabled trigger re-enabled itself on restart.--disable-package-management: Use this option to prevent the server from creating or modifying a Python virtual environment or invokingpip. Package-install API calls are rejected while it’s set.Virtual
event_timecolumn onsystem.processing_engine_logs: Queries that reference the formerevent_timecolumn continue to work after the column was renamed totime.--shutdown-timeoutgraceful shutdown bound: This new option (default30s) caps how long the server waits for active connections to drain during shutdown before forcibly closing them. Set it to0sto skip the drain.
Bug fixes
- cgroup-aware resource sizing: Containerized deployments now size memory-based defaults against the container’s cgroup limits instead of the host machine’s total resources.
Breaking changes
Size options require an explicit unit: Options that accept a size value (for example,
--exec-mem-pool-sizeand--file-cache-size) now reject a bare number. Append a unit suffix (b,kb,mb,gb,tb) or, where noted, a percentage (for example,20%). This avoids a silent change in meaning — historically, a bare number meant megabytes for some options and bytes for others.Three memory and cache options renamed, with a deprecated alias:
--exec-mem-pool-bytesis now--exec-mem-pool-size,--parquet-mem-cache-sizeis now--file-cache-size, and--force-snapshot-mem-thresholdis now--force-snapshot-mem-size(--parquet-mem-cache-query-path-durationis now--file-cache-recency, and--disable-parquet-mem-cacheis now--disable-file-cache). The deprecated old names, and their environment variables, still work and still accept a bare number as megabytes — their pre-3.11 meaning — but log a startup deprecation warning.--max-http-request-sizekeeps its name and its pre-3.11 meaning: A bare number is still accepted as bytes, but now logs a startup warning. Prefer an explicit unit suffix, for example10mb.--query-log-sizerenamed to--query-log-max-entries, with the old name and its environment variable kept as a deprecated, backward-compatible alias.Other options and environment variables renamed, with a deprecated alias: legacy names still work and log a startup deprecation warning; if both the old and new name are set with different values, the new name wins.
Old New --disable-parquet-mem-cache,--disable-data-file-cache--disable-file-cache--wal-max-write-buffer-size--wal-max-buffered-writes--wal-snapshot-size--wal-files-per-snapshotINFLUXDB3_DB_DIRINFLUXDB3_DATA_DIRINFLUXDB3_NODE_IDENTIFIER_PREFIXINFLUXDB3_NODE_IDINFLUXDB3_NODE_IDENTIFIER_FROM_ENVINFLUXDB3_NODE_ID_FROM_ENVINFLUXDB3_NUM_WAL_FILES_TO_KEEPINFLUXDB3_SNAPSHOTTED_WAL_FILES_TO_KEEPINFLUXDB3_START_WITHOUT_AUTHINFLUXDB3_WITHOUT_AUTHINFLUXDB3_TCP_LISTINER_FILE_PATH(misspelling)INFLUXDB3_TCP_LISTENER_FILE_PATHINFLUXDB3_TELEMETRY_DISABLE_UPLOADINFLUXDB3_DISABLE_TELEMETRY_UPLOADThese renames apply to both Core and Enterprise. For the separate Enterprise-only
INFLUXDB3_ENTERPRISE_*→INFLUXDB3_*environment variable renames, see Enterprise breaking changes below.Duplicate tag keys are rejected at write time: A point that repeats a tag key (for example,
m,t=a,t=a f=1i) is now rejected with a clear error, the same way duplicate field keys are./api/v2/writereturns 503 instead of 400 when the node is stopped: Clients that key retry logic off the status code now correctly treat this response as retryable.--hard-delete-default-durationis confirmed to have no effect: This option has never affected hard-delete behavior in any release — the server always uses its built-in default duration. The option is still accepted so existing configurations keep starting, but the server now logs a startup warning recommending you remove it.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
The upgraded storage engine is now the default: New clusters are created on the upgraded storage engine with no opt-in flag required. The engine is resolved from the catalog’s persisted storage mode, not from a flag:
- A brand new cluster is stamped for the upgraded storage engine at catalog creation. There’s no user-facing opt-out.
- An existing Parquet cluster keeps running Parquet after the binary upgrade. The persisted mode wins on load.
- To migrate an existing Parquet cluster, pass
--upgrade-pacha-tree(environment variableINFLUXDB3_UPGRADE_PACHA_TREE). This moves the catalog into a hybrid Parquet-and-upgraded-storage-engine mode and starts the migration. A catalog in the upgraded or migrating mode always runs the upgraded storage engine from then on.
--use-pacha-treestill works and keeps its historical migration-starting semantics, but is deprecated and logs a warning at startup. Core remains Parquet-only.Compaction throughput improvements (upgraded storage engine): Time-disjoint two-level compaction and overlapping-L1 leading-edge parallelism are now the default. Previously, all leading-edge ingest funneled through a single hot-tail L1 run set. This capped leading-edge throughput at one in-flight compaction job.
In 3.11, several concurrent L1 compaction jobs can serve the leading edge and any heavily-written range. This decouples ingest throughput from compactor reconciliation.
New windows and shards use the time-disjoint layout. Existing checkpoints keep their recorded layout until you upgrade them.
Integrated Explorer: The InfluxDB 3 Web UI (Explorer) now ships inside the Enterprise binary as a WebAssembly guest, hosted in-process behind a WASI sandbox. Enable it with
--mode all,webui. The Web UI is not included in plain--mode all, and a session secret is mandatory whenwebuimode is enabled:mkdir -p ./plugins influxdb3 serve \ --cluster-id cluster0 \ --node-id node0 \ --mode all,webui \ --plugin-dir ./plugins \ --webui-session-secret "$(openssl rand -base64 24)"You configure a connection to your local server (for example,
It keepshttp://localhost:8181), the same way you connect to a database server from the standalone Docker Explorer.a SQLite database that’s automatically synchronized to object storage per cluster. AI chat is included and can point at any OpenAI-compatible endpoint with
--webui-openai-base-url.Thread defaults scale with your license on the upgraded storage engine: On clusters running the upgraded storage engine (the default for new clusters),
--num-io-threadsand the DataFusion thread pool each default to your licensed core count, instead of the flat defaults used on Parquet-engine clusters.--num-coresvalidation runs after the server resolves the active storage engine, since the upgraded engine can license more cores than a Parquet-engine cluster does. A thread count set above the licensed core count is capped with a startup warning instead of rejected.Incremental backups: Backup is no longer full-only. Each incremental backup names a parent, and restoring an incremental walks the manifest chain to produce a full restore. Deleting an incremental also deletes every child that depends on it.
influxdb3 create backup --name base --token $ADMIN_TOKEN influxdb3 create backup --name inc-1 --incremental --parent base --token $ADMIN_TOKEN influxdb3 create restore --backup inc-1 --token $ADMIN_TOKENRestore is now a point-in-time rollback: Restore was previously additive. It’s now destructive: it truncates the WAL above the backup’s watermark so a restart doesn’t replay and resurrect post-backup data.
In-place restore without a restart: Restore can now apply to a running cluster. Supporting work includes gen0 buffer eviction, fencing peer writes on ingest-mode nodes during the restore, and evicting the query-node replica buffer so queriers stop serving the pre-restore view.
Query performance (upgraded storage engine):
PachaTreeWindowExecandPachaTreeBufferExecare now the default plan shape, giving visibility throughEXPLAINandEXPLAIN ANALYZE. Field family pruning skips loading field families that filters guarantee can’t affect the result. Scan predicate pushdown now extends across single-field-family scans, the union path, dedup and gap-leaf scans, and time predicates.Bulk import: remote sources and concurrency:
influxdb3 import uploadnow accepts an object store URL as a source, in addition to a local directory, and a--concurrencyoption to control how many files import at once (default 8).influxdb3 import upload --database mydb --table events \ s3://my-bucket/exports/ \ --source-opt aws_region=us-west-2 \ --concurrency 16Five new system tables (upgraded storage engine):
system.pt_shards,system.pt_compaction_files,system.pt_storage_snapshots,system.pt_storage_checkpoints, andsystem.pt_storage_run_set_indexes.pt_ingest_walandpt_ingest_filesgainednode_idandnode_namecolumns.--user-auth-typereplaces--without-user-auth: Configure the user authentication preview with a comma-separated list ofbasicand/oroauth, ornone(the default).--without-user-authis deprecated and hidden, but still takes precedence when explicitly set.
Bug fixes
Bulk import data loss window (checkpoint v13): Import watermarks are now embedded in the checkpoint itself, preventing data loss during a crash window.
In-place restore stability: Release-candidate validation found that live in-place restore could wedge queriers until restart, and that writing after a restore could trigger ID-recycling corruption. Both are fixed in this release.
Breaking changes
Upgraded storage engine options dropped the
pt-prefix, with no aliases: An old--pt-*flag now causes a startup error, and legacyINFLUXDB3_PT_*andINFLUXDB3_ENTERPRISE_PT_*environment variables are ignored — startup logs a warning for each one that’s still set. Review any saved command line, systemd unit, Docker Compose file, Helm chart, or packaged conf file before upgrading.Any
--pt-*option not listed below simply drops thept-prefix, and its environment variable follows the same pattern (INFLUXDB3_PT_SNAPSHOT_SIZEbecomesINFLUXDB3_SNAPSHOT_SIZE). The following options changed beyond dropping thept-prefix:Old name New name --pt-max-columns--max-total-columns--pt-gen0-max-bytes-per-file--gen0-max-file-size--pt-wal-replica-queue-size--wal-replica-queue-length--pt-wal-max-buffer-size--wal-buffer-sizeEvery remaining upgraded-storage-engine byte-size flag ending in
-bytesnow ends in-size(the L1 through L4 tail and target-file flags).A few
--pt-*flags map onto flag names shared with the Parquet engine, rather than getting their own new name —--pt-wal-flush-intervalis now--wal-flush-interval,--pt-wal-replication-intervalis now--replication-interval,--pt-file-cache-sizeis now--file-cache-size,--pt-file-cache-recencyis now--file-cache-recency, and--pt-disable-data-file-cacheis now--disable-file-cache.--file-cache-sizeis a total budget shared across both engines: during a storage engine upgrade with hybrid query enabled, the budget splits 50/50 between the two engine caches; otherwise the active engine gets the full budget.The upgraded storage engine’s flags no longer require
--use-pacha-tree: in 3.10.x a--pt-*flag without--use-pacha-treewas a parse error, but with the upgraded storage engine as the default that constraint is gone.For the complete old-to-new name table, see Migrate from
pt-option names.INFLUXDB3_ENTERPRISE_*environment variables become plainINFLUXDB3_*: 35 Enterprise-specific environment variables dropped theENTERPRISE_segment — for example,INFLUXDB3_ENTERPRISE_CLUSTER_IDis nowINFLUXDB3_CLUSTER_ID, andINFLUXDB3_ENTERPRISE_MODEis nowINFLUXDB3_MODE. The legacyENTERPRISE_names remain supported as deprecated aliases; the server logs a deprecation warning at startup when it detects one, and if both names are set with different values, the new name wins.--wait-for-running-ingestorrenamed to--wait-for-running-ingester(the old name was a misspelling). The old option, and itsINFLUXDB3_WAIT_FOR_RUNNING_INGESTOR/INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTORenvironment variables, remain as deprecated, backward-compatible aliases.Metrics lost their per-database
dblabel: This breaks any dashboard or alert that groups by database. Affected series includeinfluxdb3_write_lines,influxdb3_write_lines_rejected,influxdb3_write_bytes,influxdb3_compactions,influxdb3_last_values_cache_query_duration, and the upgraded-storage-engineinfluxdb3_ingest_*family (lp_bytes_received,pre_snapshot_buffer_*,pre_wal_flush_buffer_*,write_concurrency).influxdb3 stop nodewaits by default: Previously, the server marked the node stopping and returned immediately, but the CLI claimed the node “has been stopped.” The CLI now polls until the node readsstopped.--timeoutbounds the wait (default 5m), and--no-waitrestores the old fire-and-forget behavior. On timeout, it prints the last observed state and recovery guidance, then exits non-zero.Parquet-only catalog limits are inert on the upgraded storage engine: If
--num-database-limit,--num-table-limit, or--num-total-columns-per-table-limitis set on a cluster running the upgraded storage engine, startup now warns that they’re ignored instead of hard-failing, since existing manifests carry them across the storage engine upgrade. Only the per-table column limit has an upgraded-engine counterpart (--max-total-columns).
v3.10.5
Core
Bug fixes
- Oversized buffer chunk persistence: When a buffer chunk splits because a single string or tag column exceeds 2 GiB, each resulting chunk now persists to its own Parquet file. Previously, the split chunks all wrote to the same path.
Enterprise
All Core updates are included in Enterprise.
v3.9.11
Core
Bug fixes
- Oversized buffer chunk persistence: When a buffer chunk splits because a single string or tag column exceeds 2 GiB, each resulting chunk now persists to its own Parquet file. Previously, the split chunks all wrote to the same path.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Other bug fixes and performance improvements
v3.10.4
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
- Skip loading the compacted data file index: The new
--compacted-data-skip-file-indexoption (INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEXenvironment variable, defaultfalse) loads compacted data without materializing the file index, letting nodes start when the index has grown too large to fit in host memory. Queries remain correct, but will run slower in exchange for a lower memory footprint.
Bug fixes
- Skipped gen1 files in recompaction plans: Gen1 files pulled into a recompaction plan that was skipped for exceeding the file limit are now carried into later plans’ leftover lists. Previously, when the recompaction loop produced multiple plans for one table in a single cycle, those files were dropped from the final persisted compaction detail; the files remained in object storage, but no query path would serve them.
- Other bug fixes and performance improvements
v3.9.10
Core
Maintenance release: v3.9.10 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Skipped gen1 files in recompaction plans: Gen1 files pulled into a recompaction plan that was skipped for exceeding the file limit are now carried into later plans’ leftover lists. Previously, when the recompaction loop produced multiple plans for one table in a single cycle, those files were dropped from the final persisted compaction detail; the files remained in object storage, but no query path would serve them.
- Other bug fixes and performance improvements
v3.9.9
Core
Bug fixes
- Object store errors at startup: When the catalog checkpoint existence check fails at startup, the underlying object store error is now logged and included in the reported error. Previously, the process exited with an opaque status code and no indication of the cause.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
- Skip loading the compacted data file index: The new
--compacted-data-skip-file-indexoption (INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEXenvironment variable, defaultfalse) loads compacted data without materializing the file index, letting nodes start when the index has grown too large to fit in host memory. Queries remain correct, but will run slower in exchange for a lower memory footprint.
Bug fixes
- Other bug fixes and performance improvements
v3.10.3
Core
Bug fixes
- Duplicate tag key rejection: Writes that repeat a tag key (for example,
m,t=a,t=a f=1i) are now rejected with a clear error, the same way duplicate field keys are rejected. Previously, a point with a repeated tag key was accepted into the WAL and later caused a panic during snapshotting that crash-looped the node on WAL replay. - Processing engine trigger cancellation: Disabling or deleting a trigger now cancels its in-flight plugin run in Core, extending the Enterprise fix from v3.10.2. Previously, a synchronous scheduled trigger whose plugin run was still executing could block trigger
disableanddelete --forceoperations until the run finished.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
- Compacted data load concurrency limit: The new
--compacted-data-load-concurrency-limitoption (INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMITenvironment variable, default20) bounds concurrent object store reads when a node loads compacted data at startup. Previously, nodes with large compaction indexes issued unbounded concurrent reads at startup, which could saturate the network, cause object store timeouts, and starve other subsystems of object store connections.
Bug fixes
- Corrupt peer WAL and snapshot handling: A durably corrupt WAL or snapshot file from a peer node is now logged, counted, and skipped so replication continues with later files. Previously, a corrupt peer WAL file stalled replication from that node—or prevented server startup—and a corrupt snapshot manifest silently halted snapshot replication from that peer. Transient errors, such as network failures, still retry as before.
- Other bug fixes and performance improvements
v3.9.8
Core
Bug fixes
- Duplicate tag key rejection: Writes that repeat a tag key (for example,
m,t=a,t=a f=1i) are now rejected with a clear error, the same way duplicate field keys are rejected. Previously, a point with a repeated tag key was accepted into the WAL and later caused a panic during snapshotting that crash-looped the node on WAL replay. - Processing engine trigger cancellation: Disabling or deleting a trigger now cancels its in-flight plugin run in Core, extending the Enterprise fix from v3.9.7. Previously, a synchronous scheduled trigger (the default, created without
--run-asynchronous) whose plugin run was still executing could block triggerdisable,delete --force, and database deletion until the run finished.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
- Compacted data load concurrency limit: The new
--compacted-data-load-concurrency-limitoption (INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMITenvironment variable, default20) bounds concurrent object store reads when a node loads compacted data at startup. Previously, nodes with large compaction indexes issued unbounded concurrent reads at startup, which could saturate the network, cause object store timeouts, and starve other subsystems of object store connections.
Bug fixes
- Other bug fixes and performance improvements
v3.10.2
Core
Maintenance release: v3.10.2 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Processing engine trigger cancellation: Disabling or deleting a trigger now cancels its in-flight plugin run. Previously, a synchronous scheduled trigger whose plugin run was still executing could block trigger
disableanddelete --forceoperations until the run finished. - Other bug fixes and performance improvements
v3.9.7
Core
Maintenance release: v3.9.7 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Processing engine trigger cancellation: Disabling or deleting a trigger now cancels its in-flight plugin run promptly. Previously, a synchronous scheduled trigger (the default, created without
--run-asynchronous) whose plugin run was still executing could block triggerdisable,delete --force, and even unrelatedcreateoperations until the run finished. - Other bug fixes and performance improvements
v3.10.1
Core
Bug fixes
- Snapshot manifest persistence: Snapshot manifests are now persisted using multipart uploads, preventing errors when writing large manifests to object storage.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Compacted generation deduplication: Overlapping compacted generations are now co-partitioned so the querier correctly deduplicates them.
- Performance upgrade preview file access: A canceled file fetch no longer cascades cancellation to other waiters with the storage engine upgrade (
--use-pacha-tree). - Other bug fixes and performance improvements
v3.9.6
Core
Maintenance release: v3.9.6 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Compacted generation deduplication: Overlapping compacted generations are now co-partitioned so the querier correctly deduplicates them.
- Other bug fixes and performance improvements
v3.9.5
Core
Bug fixes
- Snapshot manifest persistence: Snapshot manifests are now persisted using multipart uploads, preventing errors when writing large manifests to object storage.
Enterprise
All Core updates are included in Enterprise.
v3.10.0
Upgrading to InfluxDB 3.10 is a one-way migration
The first time you start InfluxDB 3.10, it automatically upgrades the on-disk catalog format from v2 to v3. After migration, 3.9.x and older binaries are unable to read the new catalog, and fail to start on the same cluster data.
Before upgrading, back up your current catalog. The paths depend on the version you’re upgrading from:
- 3.4.0 or later:
{prefix}/catalog/v2/logs/and{prefix}/catalog/v2/snapshot - Before 3.4.0:
{prefix}/catalogs/and{prefix}/_catalog_checkpoint
Restoring these objects is the only way to roll back to 3.9.x.
On a cluster running 3.4.0 or later, {prefix}/catalogs/ and
{prefix}/_catalog_checkpoint may still be present as leftovers from an earlier
catalog format. They aren’t current and aren’t a valid rollback source.
Core
Features
Catalog format upgrade (catalog v2 → v3): InfluxDB 3.10 automatically migrates the on-disk catalog to v3 format on first startup. The v3 catalog uses a compact binary record format (~5–6x smaller than v2). Migration is automatic, idempotent, and crash-safe. Back up your current catalog before upgrading — the migration is one-way and 3.9.x binaries cannot read a v3 catalog. If you’re upgrading from 3.4.0 or later, back up
{prefix}/catalog/v2/logs/and{prefix}/catalog/v2/snapshot. If you’re upgrading from a version before 3.4.0, back up{prefix}/catalogs/and{prefix}/_catalog_checkpoint.influxdb3 debug catalogcommand: Inspect catalog state offline directly from object storage — no running server required. Subcommands:list,snapshot,sequence. Available in both Core and Enterprise.--max-concurrent-queriesflag: Limit the number of queries that run concurrently. The limit can also be updated at runtime viaPOST /api/v3/configure/query_concurrency_limit.Processing engine: cross-database queries: Plugins can now read data from any database using the optional
database=keyword argument oninfluxdb3_local.query().Processing engine: trigger lockdown flags: Two new serve flags restrict plugin behavior.
--restrict-plugin-triggers-tolimits triggers to one or more ofwal,schedule, orrequest.--plugin-dir-only(Enterprise) blocks plugin installation from any source other than the configured plugin directory.Observability: always-on heap profiling: Heap profiling is now enabled at startup with negligible overhead (~<1% CPU). Access profiles at the existing pprof endpoint. To disable, set
MALLOC_CONF=prof:falsebefore starting the server.Observability: per-request query traces: Query tracing is now opt-in per request rather than enabled for all queries. This reduces trace volume for high-throughput deployments. See the monitoring documentation for how to enable tracing on individual requests.
Embedded Python updated to 3.13.14: The Processing engine’s embedded Python is updated to 3.13.14, which includes upstream security fixes.
Bug fixes
/api/v2/writereturns 403 for unauthorized tokens: A valid token that lacks write permission on the target database now receives403 Forbiddeninstead of401 Unauthorized. Update client-side retry logic if it differentiates on these status codes.Line-protocol parse errors return 400: Malformed line protocol sent to the v1
/writeor v2/api/v2/writeendpoints now returns400 Bad Requestinstead of500 Internal Server Error.Invalid queries return HTTP 4xx: A syntactically invalid query now returns an appropriate 4xx response rather than a 5xx error.
Query log records
query_texton terminal phases: The query log now includes thequery_textfield for queries that have reached a terminal phase.
Breaking changes
Catalog format upgrade (catalog v2 → v3) is one-way: The first startup of InfluxDB 3.10 migrates the catalog to v3. After migration, 3.9.x binaries cannot start against the same object store. Back up your current catalog before upgrading:
{prefix}/catalog/v2/logs/and{prefix}/catalog/v2/snapshotif you’re upgrading from 3.4.0 or later, or{prefix}/catalogs/and{prefix}/_catalog_checkpointif you’re upgrading from an earlier version.influxdb3 writeoutput changed: The write command now prints a throughput report on success instead of printingsuccess. Scripts that parse the previous output should use--quiet(-q) to suppress all output./api/v2/writereturns 403 instead of 401: See bug fixes above. Clients that treat 401 and 403 differently must be updated.Line-protocol parse errors return 400 instead of 500: See bug fixes above.
Heap profiling is always on: The ~<1% CPU overhead is present by default. Opt out with
MALLOC_CONF=prof:false.Query traces are now per-request opt-in: Observability pipelines that expect a trace for every query will see far fewer traces. Update your pipeline to request traces explicitly per query.
Enterprise
All Core updates are included in Enterprise. The following updates are exclusive to Enterprise.
Features
Wide-tag support: Tag IDs have been widened from u8 to u16. This raises the practical limit to thousands of tables and millions of columns per database. Available with the storage engine upgrade (
--use-pacha-tree).Row-level deletion: Delete rows by time range and tag predicates using
influxdb3 delete rowsandinfluxdb3 cancel row-delete. Deletion is asynchronous — requests persist to object storage and the compactor applies them when rewriting run sets. Requires--use-pacha-tree. Monitor pending deletes with thesystem.row_deletessystem table and 9 newinfluxdb3_compactor_row_delete_*metrics.Runtime query-concurrency limit: Adjust the maximum number of concurrent queries at runtime via the
/api/v3/configure/query_concurrency_limitAPI —GETto read the current limit,PUTto set it, andDELETEto reset it to the startup default.GET /readyendpoint: Returns200 OKwhen the server can reach object storage, or503 Service Unavailablewhen it cannot. Use this endpoint for readiness probes in load balancers and orchestration systems.Backup and restore: Create and manage full backups of Enterprise data with
influxdb3 create backup,influxdb3 status backup,influxdb3 show backups,influxdb3 delete backup, andinfluxdb3 cancel backup. Initiate restore operations withinfluxdb3 create restore,influxdb3 status restore,influxdb3 show restores, andinfluxdb3 cancel restore. Backup and restore require--use-pacha-treeand a compactor node with an admin token.create backuprefuses to overwrite an existing backup. Only one restore runs at a time across the cluster. After a restore completes, restart the node(s) for the in-memory view to update. API:POST|GET|DELETE /api/v3/enterprise/backup[/{name}]and/api/v3/enterprise/restore[/{id}].Bulk import: Import generic (non-IOx) Parquet files into Enterprise with
influxdb3 import upload. Map Parquet columns to InfluxDB types (i64,u64,f64,bool,string,time,tag) using--columnflags. Unmapped columns become fields. List in-progress and completed import jobs withinfluxdb3 import list. The target database and table must exist before importing.User auth and RBAC preview: Multi-user authentication is now available as a preview feature. It is off by default (
--without-user-auth true). When enabled, users authenticate with username and password to receive JWTs. Optional OAuth/OIDC is supported. Three built-in roles are available: Admin, Auditor, and Member.New CLI commands:
influxdb3 auth login,influxdb3 auth logout(removes local credentials; does not revoke the signed JWT),influxdb3 auth reset-password,influxdb3 create user,influxdb3 show users,influxdb3 update user,influxdb3 update user-roles,influxdb3 delete user,influxdb3 user require-password-reset.New API endpoints:
POST /api/v3/configure/user— configure the initial user and create the operator token (also used byinfluxdb3 manage init-admin)POST /api/v3/authorize— authenticate and obtain tokensPOST /api/v3/authorize/refresh— refresh an access token using a refresh tokenPOST /api/v3/authorize/reset-password— reset password using current credentialsGET /api/v3/users,POST /api/v3/users— list or create users (Enterprise)GET /api/v3/users/{id},PATCH /api/v3/users/{id},DELETE /api/v3/users/{id}— get, update, or delete a userPOST /api/v3/users/{id}/require-password-reset— force password reset on next loginGET /api/v3/users/{id}/roles,PUT /api/v3/users/{id}/roles— read or replace a user’s rolesGET /api/v3/roles— list available rolesGET /api/v3/auth/oauth/config— discover OAuth configuration for device-code login
New serve flags:
--without-user-auth,--jwt-key-id,--jwt-private-key,--jwt-issuer,--jwt-default-ttl-seconds,--oauth-issuer,--oauth-audience,--oauth-client-id,--oauth-scopes, and--rbac-authoring-disabled.JWT keys must be PKCS#1 format (
openssl genrsa -traditional). PKCS#8 format silently fails.influxdb3 managecommand group: A newmanagesubcommand groups offline administrative operations:influxdb3 manage init-admin,influxdb3 manage add-admin-token, andinfluxdb3 manage downgrade-to-parquet. Thedowngrade-to-parquetcommand has moved from the top level to this group (the old spelling still works but prints a deprecation warning).influxdb3 remove nodecommand: Remove a stopped node from the catalog. The compactor drains the node’s data before removal completes.Service-level logs: Structured query and storage logging is now available for observability. Configure log output format and levels using new
serveflags.Processing engine: internode gRPC for plugin writes: Plugin writes from non-ingester nodes now route over internode gRPC rather than HTTP. This improves reliability in multi-node clusters. Requires
--internode-bind-addrand--conn-infopointing at the gRPC port.Licensing: object-store portability: Enterprise licenses are no longer bound to the object-store configuration (type, bucket, endpoint, region). Validation now enforces only JWT signature, expiry, and licensed core count. You can move to a different bucket or store with the same license. When moving to an empty store, copy
{cluster-id}/commercial_licensefrom the old store or restart with--license-file.Observability: 36 new compactor metrics: 36 new
influxdb3_compactor_*Prometheus metrics are now emitted. The primary health signal isinfluxdb3_compactor_snapshot_lag_seconds. A newinfluxdb3_compaction_sequence_numbergauge tracks Parquet engine lag.influxdb3 debug object-store-checkcommand: Validate S3-compatible backend semantics before putting a store into production. Checks that the backend correctly implements the operations that InfluxDB relies on.
Bug fixes
Compaction stability: Several compaction bugs are fixed, including: compaction incorrectly setting
ingest_time(causing deduplication and row delete bugs), compactor deadlock and write amplification, stopped compactor nodes blocking storage engine upgrades, and compactor orphaning gen1 files.Tag case preserved during storage engine upgrades: Tag names now preserve their original case when upgrading from Parquet to the new storage engine.
Bulk import memory usage reduced: Peak memory during multi-file bulk import operations is significantly reduced.
Last cache delete deadlock fixed: Deleting a last-value cache entry no longer causes a deadlock.
Row delete: aborted requests no longer processed: Row delete requests that were aborted are no longer picked up by the compactor.
Table and database soft-delete name collision fixed: Deleting a table or database and recreating it with the same name now works correctly.
TLS CA flag cleanup: The
servecommand no longer accepts--tls-ca— it was non-functional there. Client commands (such asqueryandwrite) still accept--tls-cato trust a custom or self-signed CA, and the flag is now consistently bound to theINFLUXDB3_TLS_CAenvironment variable across commands that were previously missing the binding. Thecancel row-deletecommand now also accepts TLS options.
Breaking changes
influxdb3 row-delete→influxdb3 delete rowsandinfluxdb3 cancel row-delete: The oldrow-deletetop-level command is removed. Update scripts to use the newdelete rowsandcancel row-deletesubcommands.--conn-infomust point to the internode gRPC port for plugin writes: In multi-node deployments,--conn-infomust now reference the internode gRPC port (not the HTTP port) for plugin writes to reach the ingester. Update your cluster configuration before upgrading.PT compactor stale-job timeout changed from 5 minutes to 1 hour: Compactor jobs that appear stuck take up to 1 hour to be retried (previously 5 minutes). This reduces false-positive preemption on slow storage backends.
--help-fullremoved: The--help-fullflag is no longer available. Update any scripts that invokeinfluxdb3 --help-full.--package-managerflag deprecated: Theuvpackage manager has been removed.pipis always used for plugin package installation. The--package-managerflag still starts the server but prints a deprecation warning. Remove it from your startup configuration.--pt-partition-countrenamed to--pt-shard-count: The flag has no alias. Update any startup scripts that pass--pt-partition-countbefore upgrading to 3.10.System table columns renamed: The following columns in storage engine system tables are renamed. Update any dashboards or queries that reference the old names:
partition_id→shard_idpartition_start_time→shard_start_time
Known issues
Row delete ghost rows: After a row delete reports as “completed,” rows in the un-compacted ingest tail can survive and remain visible in queries. Workaround: re-issue the delete request after the affected data has been compacted and verify row counts.
system.row_deletesreturns HTTP 500 for predicate-less--all-timedeletes: Querying thesystem.row_deletessystem table after a delete issued with--all-timeand no tag predicate may return HTTP 500. Workaround: useGET /api/v3/row_delete_requestsinstead.Multi-shard data loss with
--use-pacha-tree: When the--use-pacha-treestorage engine is enabled, running with more than one shard (--pt-shard-count > 1) can cause data loss and a bootstrap deadlock. Workaround: keep--pt-shard-countat1.Backup does not capture row-delete state: Backup (beta) doesn’t currently pick up row-delete state files in object storage, so row deletes may persist across a restore.
Built-in roles grant narrower access than their descriptions suggest: With the user authentication preview enabled, the Auditor and Member roles enforce less access than their role descriptions imply. Auditor users can list databases but cannot query data or read users or roles. Member users can read and write data but cannot list users or roles. Workaround: use an Admin-role user or an admin token for user and role management.
v3.9.3
Core
Maintenance release: v3.9.3 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Query chunk deduplication: Fixed an issue where the same file could reach the query path from both the compactor and the ingester, causing affected queries to abort.
- Large file uploads during compaction: Index files written during compaction now use adaptive uploads, preventing errors when writing large files to object storage.
- Other bug fixes and performance improvements
v3.9.2
Core
Maintenance release: v3.9.2 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Bug fixes
- Gen1 file deduplication in compactor: Fixed an issue where stale snapshot markers after
CompactionSummaryrecovery could leave duplicate gen1 file entries and cause recompaction to abort. - Empty series key handling: Fixed compaction for tables with no tags (empty series key).
- Catalog token hash lookup: Fixed a case where a failed
add_tokeninsert could leave a stale entry in the token hash lookup map. The lookup is now only updated after the underlying repository insert succeeds. - Other bug fixes and performance improvements
v3.9.1
Core
Maintenance release: v3.9.1 Core includes only build and dependency updates—no user-facing changes.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific updates:
Features
- Configurable compactor snapshot loading: The number of snapshots the Parquet compactor loads at startup is now externally configurable, making it easier to tune recovery behavior for large deployments.
Bug Fixes and Performance Improvements
Performance Improvements: This release features faster multi-source query merges and improved retention scheduling with the new Performance Update Preview.
Bug Fixes: New updates fix issues where duplicate rows could be returned, Gen0 pruning safety, invalid status codes, and more.
v3.9.0
Core
Features
DataFusion upgrade: Upgraded the embedded DataFusion query engine 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
- Additional bug fixes and performance improvements.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
Performance upgrade preview (beta): Preview major storage layer upgrades with the
--use-pacha-treeflag. Includes a new columnar file format (.ptfiles), automatic Parquet migration with hybrid query mode, column families for efficient wide-table I/O, and bounded compaction. See Performance upgrade preview.The performance upgrade preview is a beta feature for staging and test environments only. Do not use for production workloads.
Bulk data export: Export compacted data as Parquet files for use with external tools. Use the new
influxdb3 exportsubcommands to list databases, tables, and compacted time windows, then export selected data. See Export to Parquet.Automatic distinct value caching: Enable automatic DVC creation for
SHOW TAG VALUESqueries and thetag_values()SQL function with--pt-enable-auto-dvc. Max cardinality and refresh intervals are configurable.Downgrade from performance preview: Use
influxdb3 downgrade-to-parquetto revert from the performance preview back to standard Parquet storage. Only data that existed before the upgrade (original Parquet files) is preserved. See Downgrade to Parquet.Non-interactive delete confirmation: Use the
--yes(-y) flag with delete commands to skip interactive confirmation prompts in automated and headless environments.1MB default string field limit: The maximum string field size defaults to 1MB (previously 64KB) to support v1 migration workloads. Writes exceeding 1MB are rejected with a validation error.
Bug fixes
Compaction stability: Multiple fixes to compaction scheduling, priority handling, and resource management for improved stability in multi-node clusters.
Additional bug fixes and performance improvements.
v3.8.4
Core
No adjustments in this release. Core remains on v3.8.3.
Enterprise
Security
- Read and write tokens can no longer delete databases: Authorization now evaluates both the HTTP method and the request path. Previously, tokens with read or write access to a database could also issue delete requests.
Bug fixes
Stale compactor blocking startup: Fixed an issue where stopped (stale) compactor entries in the catalog prevented new compactor nodes from starting. Enterprise now only considers currently running compactor nodes for conflict checks.
WAL replay: Fixed an issue where combined-mode deployments silently ignored the
--wal-replay-concurrency-limitflag and always used serial replay (concurrency of 1). The flag is now respected.Other bug fixes and performance improvements.
v3.8.3
Core
Bug fixes
- WAL Buffer: Fix an edge case that could potentially cause the WAL buffer to overflow
v3.8.2
Core
Features
TLS: Skip certificate verification in CLI subcommands: Use the new
--tls-no-verifyflag with any CLI subcommand to skip TLS certificate verification when connecting to a server. Useful for testing environments with self-signed certificates.Environment variable prefix standardization: InfluxDB 3 specific environment variables use the
INFLUXDB3_prefix for consistency. Legacy variable names continue to work (deprecated) for backward compatibility.INFLUXDB3_LOG_FILTERis currently ignored. To set the log filter, useLOG_FILTERor the--log-filterflag.Parquet output format for
showsubcommands: You can now save query results from theshowsubcommand directly to a Parquet file.SQL:
tag_values()table function: Query distinct tag values using the newtag_values()SQL table function.InfluxQL:
SHOW TAG VALUESimprovements: In Enterprise deployments with auto-DVC enabled,SHOW TAG VALUESqueries now use the Distinct Value Cache (DVC) automatically for improved performance. TheWHEREclause is also now supported inSHOW TAG VALUESqueries backed by the DVC, including compound predicates usingANDandOR.InfluxQL:
SHOW RETENTION POLICIESreturns duration: Thedurationcolumn inSHOW RETENTION POLICIESresults now returns the configured retention period in InfluxDB v1-compatible format (for example,168h0m0s) instead of returning an empty value.Ceph S3 backend support: Use
--aws-s3-custom-backend cephwithinfluxdb3 serveto connect to Ceph S3-compatible object storage. This enables ETag quote stripping required for conditional PUT operations with Ceph._internaldatabase default retention: The_internalsystem database now defaults to a 7-day retention period (previously infinite). Only admin tokens can modify retention on the_internaldatabase.Snapshot checkpointing for faster startup: Use the new
--checkpoint-intervalserve option to periodically consolidate snapshots into monthly checkpoints. On startup, the server loads one to two checkpoints per calendar month instead of thousands of individual snapshots, reducing startup time for long-running servers.
Bug fixes
Sparse write handling for LVC, DVC, and Processing Engine: Fixed incorrect behavior when processing sparse writes (writes that include only some fields from a table with multiple field families).
influxdb3-launcher: SSL certificate path on RHEL systems: Fixed an issue where theSSL_CERT_FILEenvironment variable was not correctly set on affected RHEL-based systems when using theinfluxdb3-launcherscript.Additional bug fixes and performance improvements.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- Data-only deletion for databases and tables: Delete only the stored data from a database or table while preserving catalog entries, schema, and associated resources (tokens, triggers, caches, and processing engine configurations).
Bug fixes
Compaction stability: Several fixes to compaction scheduling and processing to improve stability and correctness in multi-node clusters.
TableIndexCache initialization: Fixed a concurrency bug that could cause incorrect behavior during
TableIndexCacheinitialization.Snapshot checkpointing: Fixed an issue where snapshot checkpoint cleanup was not running as a background task.
v3.8.0
Core
Features
- Linux Service Management: Run InfluxDB 3 as a managed system service on Linux (#27026):
- Use
influxdb3-launcherscript to initialize the service - Deploy with systemd on modern Linux distributions
- Deploy with SysV init on legacy systems
- Customize service behavior with configuration files
- Use
Bug fixes
- CLI: View only active databases and tables when running
SHOW RETENTION - Database operations: Receive an error when attempting to delete tables from an already-deleted database
- Retention Policy: Receive an error when attempting to modify retention settings on deleted databases
Security
- Processing Engine: Run processing engine plugins with Python 3.13.11, which includes security and bug fixes (#27014)
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Bug fixes
- Table Limits: Delete tables without affecting your table limit quota
- Retention Policy: Receive an error when attempting to modify retention settings on deleted tables
v3.7.0
Core
Features
- HTTP API Enhancements:
- All HTTP responses now include a
cluster-uuidheader containing the catalog UUID, enabling clients to identify specific cluster instances programmatically - HTTP API now supports multi-member gzip payloads enabling batch operations
- All HTTP responses now include a
- CLI Commands:
- The new
influxdb3 show retentioncommand displays effective retention periods for each table, showing whether retention is set at the database-level or table-level with human-readable formatting (for example, “7d”, “24h”)
- The new
Bug fixes
Authorization: Fixed multi-database permission handling to properly authorize queries across multiple databases.
General Improvements: Several key bug fixes and performance improvements.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
- General Improvements: Several key bug fixes and performance improvements.
v3.6.0
Core
Features
- Quick-Start Developer Experience:
influxdb3now supports running without arguments for instant database startup, automatically generating IDs and storage flags values based on your system’s setup.
- Processing Engine:
- Plugins now support multiple files instead of single-file limitations.
- When creating a trigger, you can upload a plugin directly from your local machine using the
--uploadflag. - Existing plugin files can now be updated at runtime without recreating triggers.
- New
system.plugin_filestable andshow pluginsCLI command now provide visibility into all loaded plugin files. - Custom plugin repositories are now supported via
--plugin-repoCLI flag. - Python package installation can now be disabled with
--package-manager disabledfor locked-down environments. - Plugin file path validation now prevents directory traversal attacks by blocking relative and absolute path patterns.
Bug fixes
- Write API: Fixed abbreviated precision values (
ns,ms,us,s) to work correctly with the/api/v3/write_lpendpoint. Previously, only full precision names (nanosecond,microsecond,millisecond,second) worked. - Token management: Token display now works correctly for hard-deleted databases
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Operational improvements
- Storage engine: improvements to the Docker-based license service development environment
- Catalog consistency: Node management fixes for catalog edge cases
- Other enhancements and performance improvements
v3.5.0
Core
Features
- Custom Plugin Repository:
- Use the
--plugin-repooption withinfluxdb3 serveto specify custom plugin repositories. This enables loading plugins from personal repos or disabling remote repo access.
- Use the
Bug fixes
- Database reliability:
- Write path:
- Write operations to soft-deleted databases are now rejected, preventing data loss (#26722)
- Runtime stability:
- Fixed a compatibility issue that could cause deadlocks for concurrent operations (#26804)
- Other bug fixes and performance improvements
Security & Misc
- Sensitive environment variable values are now hidden in CLI output and log messages (#26837)
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- Cache optimization:
- Last Value Cache (LVC) and Distinct Value Cache (DVC) now populate on creation and only on query nodes, reducing resource usage on ingest nodes.
Bug fixes
- Object store reliability:
- Object store operations now use retryable mechanisms with better error handling
Operational improvements
- Compaction optimizations:
- Compaction producer now waits 10 seconds before starting cycles, reducing resource contention during startup
- Enhanced scheduling algorithms distribute compaction work more efficiently across available resources
- System tables:
- System tables now provide consistent data across different node modes (ingest, query, compact), enabling better monitoring in multi-node deployments
v3.4.2
Core
Bug fixes
- Database reliability:
- TableIndexCache initialization and ObjectStore improvements
- Persister doesn’t need a TableIndexCache
HTTP API changes
- v2 write API: Standardized
/api/v2/writeerror response format to match other InfluxDB editions. Error responses now use the consistent format:{"code": "<code>", "message": "<detailed message>"}(#26787)
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- Storage engine: Pass in root CA and disable TLS verify for object store
- Support: Add support for manually stopping a node
Bug fixes
- Bug fix: Generation detail path calculation panic
- Database reliability: Pass TableIndexCache through to PersistedFiles
Operational improvements
- Compaction optimizations:
- Compaction cleaner now waits for 1 hour by default (previously 10 minutes)
- Compaction producer now waits for 10 seconds before starting compaction cycle
- Catalog synchronization: Background catalog update is synchronized every 1 second (previously 10 seconds)
- Logging improvements: Added clear logging to indicate what sequence is persisted on producer side and what is consumed by the consumer side
v3.4.1
Core
Bug Fixes
- Upgrading from 3.3.0 to 3.4.x no longer causes possible catalog migration issues (#26756)
v3.4.0
Core
Features
- Token Provisioning:
- Generate admin tokens offline and use them when starting the database if tokens do not already exist. This is meant for automated deployments and containerized environments. (#26734)
- Azure Endpoint:
- Use the
--azure-endpointoption withinfluxdb3 serveto specify the Azure Blob Storage endpoint for object store connections. (#26687)
- Use the
- No_Sync via CLI:
- Use the
--no-syncoption withinfluxdb3 writeto skip waiting for WAL persistence on write and immediately return a response to the write request. (#26703)
- Use the
Bug Fixes
- Validate tag and field names when creating tables (#26641)
- Using GROUP BY twice on the same column no longer causes incorrect data (#26732)
Operational and security improvements
Introduce a new
v2catalog path structure:catalog/v2/logs/directory for log files (instead ofcatalogs/)catalog/v2/snapshotfile for checkpoint/snapshot files (instead of_catalog_checkpoint)
Reduce verbosity of the TableIndexCache log. (#26709)
WAL replay concurrency limit defaults to number of CPU cores, preventing possible OOMs. (#26715)
Remove unsafe signal_handler code. (#26685)
Tags with
/in the name no longer break the primary key.
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
Token Provisioning:
- Generate resource and admin tokens offline and use them when starting the database.
Select a home or trial license without using an interactive terminal. Use
--license-type[home | trial | commercial] option to theinfluxdb3 servecommand to automate the selection of the license type.
Bug Fixes
- Don’t initialize the Processing Engine when the specified
--modedoes not require it. - Don’t panic when
INFLUXDB3_PLUGIN_DIRis set in containers without the Processing Engine enabled.
v3.3.0
Core
Features
- Database management:
- Add
influxdb_schemasystem table for database schema management (#26640) - Add
system.processing_engine_trigger_argumentstable for trigger configuration management (#26604) - Add write path logging to capture database name and client IP address for failed writes. The IP address is fetched from
x-forwarded-forheader if available,x-real-ipif available, or remote address as reported by TlsStream/AddrStream (#26616)
- Add
- Storage engine: Introduce
TableIndexCachefor efficient automatic cleanup of expired gen1 Parquet files based on retention policies and hard deletes. Includes new background loop for applying data retention policies with configurable intervals and comprehensive purge operations for tables and retention period expired data (#26636) - Authentication and security: Add admin token recovery server that allows regenerating lost admin tokens without existing authentication. Includes new
--admin-token-recovery-http-bindoption for running recovery server on separate port, with automatic shutdown after successful token regeneration (#26594) - Build process: Allow passing git hash via environment variable in build process (#26618)
Bug Fixes
- Database reliability:
- 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:
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- License management:
- Improve licensing suggestions for Core users
- Update license information handling
- Database management:
- Enhance
TableIndexCachewith advanced features beyond Core’s basic cleanup: persistent snapshots, object store integration, merge operations for distributed environments, and recovery capabilities for multi-node clusters - Add
TableIndexSnapshot,TableIndex, andTableIndicestypes for distributed table index management
- Enhance
- Support: Include contact information in trial error messages
- Telemetry: Send onboarding telemetry before licensing setup
Bug Fixes
- Compaction stability:
- Fix compactor re-compaction issues on max generation data overwrite
- Fix compactor to treat “all” mode as “ingest” mode
- Database reliability:
- Add missing system tables to compact mode
- Storage integrity: Update Parquet file paths to use 20 digits of 0-padding
- General fixes:
- Only load processing engine in correct server modes
- Remove load generator alias clash
v3.2.1
Core
Features
- Enhanced database lifecycle management:
- Allow updating the hard deletion date for already-deleted databases and tables, providing flexibility in managing data retention and compliance requirements
- Include
hard_deletion_datecolumn in_internalsystem tables (databasesandtables) for better visibility into data lifecycle and audit trails
Bug Fixes
- CLI improvements:
- Query processing: Fixed V1-compatible
/queryHTTP API endpoint to correctly default to nanosecond precision (ns) for CSV output, ensuring backward compatibility with InfluxDB 1.x clients and preventing data precision loss (#26577) - Database reliability: Fixed issue preventing hard deletion of soft-deleted databases and tables, enabling complete data removal for compliance and storage management needs (#26574)
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- License management improvements: New
influxdb3 show licensecommand displays detailed license information including type, expiration date, and resource limits, making it easier to monitor license status and compliance
Bug Fixes
- API stability: Fixed HTTP API trigger specification to use the correct
"request:REQUEST_PATH"syntax, ensuring proper request-based trigger configuration for processing engine workflows
v3.2.0
Core: revision 1ca3168bee
Enterprise: revision 1ca3168bee
Core
Features
- Hard delete for databases and tables: Permanently delete databases and tables, enabling complete removal of data structures for compliance and storage management (#26553)
- AWS credentials auto-reload: Support dynamic reloading of ephemeral AWS credentials from files, improving security and reliability when using AWS services (#26537)
- Database retention period support: Add retention period support for databases via CLI commands (
create databaseandupdate databasecommands) and HTTP APIs (#26520):- New CLI command:
update database --retention-period
- New CLI command:
- Configurable lookback duration: Users can specify lookback duration for PersistedFiles buffer, providing better control over query performance (#26528)
- WAL replay concurrency control: Add concurrency limits for WAL (Write-Ahead Log) replay to improve startup performance and resource management (#26483)
- Enhanced write path: Separate write path executor with unbounded memory for improved write performance (#26455)
Bug Fixes
- WAL corruption handling: Handle corrupt WAL files during replay without panic, improving data recovery and system resilience (#26556)
- Database naming validation: Disallow underscores in database names when created via API to ensure consistency (#26507)
- Object store cleanup: Automatic intermediate directory cleanup for file object store, preventing storage bloat (#26480)
Additional Updates
- Track generation 1 duration in catalog for better performance monitoring (#26508)
- Add retention period support to the catalog (#26479)
- Update help text for improved user experience (#26509)
Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
Features
- License management improvements:
- New
influxdb3 show licensecommand to display current license information
- New
- Table-level retention period support: Add retention period support for individual tables in addition to database-level retention, providing granular data lifecycle management
- New CLI commands:
create table --retention-periodandupdate table --retention-period - Set or clear table-specific retention periods independent of database settings
- New CLI commands:
- Compaction improvements:
- Address compactor restart issues for better reliability
- Track compacted generation durations in catalog for monitoring
- Disable Parquet cache for ingest mode to optimize memory usage
Bug Fixes
- Query optimization: Correctly partition query chunks into generations for improved performance
- Data integrity: Don’t delete generation 1 files as part of compaction process
- License handling: Trim whitespace from license file contents after reading to prevent validation issues
v3.1.0
Core: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264
Enterprise: revision 2cb23cf32b67f9f0d0803e31b356813a1a151b00
Core
Token and Security Updates
- Named admin tokens can now be created, with configurable expirations
health,ping, andmetricsendpoints can now be opted out of authorizationBasic $TOKENis now supported for all APIs- Additional info available when creating a new token
- Additional info available when starting InfuxDB using
--without-auth
Additional Updates
- New catalog metrics available for count operations
- New object store metrics available for transfer latencies and transfer sizes
- New query duration metrics available for Last Value caches
/pingAPI now contains versioning headers- Other performance improvements
Fixes
- New tags are now backfilled with NULL instead of empty strings
- Bitcode deserialization error fixed
- Series key metadata not persisting to Parquet is now fixed
- Other general fixes and corrections
Enterprise
Token and Security Updates
- Resource tokens now use resource names in
show tokens - Tokens can now be granted
CREATEpermission for creating databases
Additional Updates
- Last value caches reload on restart
- Distinct value caches reload on restart
- Other performance improvements
- Replaces remaining “INFLUXDB_IOX” Dockerfile environment variables with the following:
ENV INFLUXDB3_OBJECT_STORE=fileENV INFLUXDB3_DB_DIR=/var/lib/influxdb3
Fixes
- Improvements and fixes for license validations
- False positive fixed for catalog error on shutdown
- UX improvements for error and onboarding messages
- Other general fixes and corrections
v3.0.3
Core: revision 384c457ef5f0d5ca4981b22855e411d8cac2688e
Enterprise: revision 34f4d28295132b9efafebf654e9f6decd1a13caf
Core
Fixes
- Prevent operator token,
_admin, from being deleted.
Enterprise
Fixes
- Fix object store info digest that is output during onboarding.
- Fix issues with false positive catalog error on shutdown.
- Fix licensing validation issues.
- Other fixes and performance improvements.
v3.0.2
Core: revision d80d6cd60049c7b266794a48c97b1b6438ac5da9
Enterprise: revision e9d7e03c2290d0c3e44d26e3eeb60aaf12099f29
Core
Security updates
- Generate testing TLS certificates on the fly.
- Set the TLS CA via the INFLUXDB3_TLS_CA environment variable.
- Enforce a minimum TLS version for enhanced security.
- Allow CORS requests from browsers.
General updates
- Support the
--format jsonoption in the token creation output. - Remove the Last Values Cache size limitation to improve performance and flexibility.
- Incorporate additional performance improvements.
Fixes
- Fix a counting bug in the distinct cache.
- Fix how the distinct cache handles rows with null values.
- Fix handling of
group bytag columns that use escape quotes. - Sort the IOx table schema consistently in the
SHOW TABLEScommand.
Enterprise
Updates
- Introduce a command and system table to list cluster nodes.
- Support multiple custom permission argument matches.
- Improve overall performance.
Fixes
- Initialize the object store only once.
- Prevent the Home license server from crashing on restart.
- Enforce the
--num-coresthread allocation limit.
v3.0.1
Core: revision d7c071e0c4959beebc7a1a433daf8916abd51214
Enterprise: revision 96e4aad870b44709e149160d523b4319ea91b54c
Core
Updates
- TLS CA can now be set with an environment variable:
INFLUXDB3_TLS_CA - Other general performance improvements
Fixes
- The
--tagsargument is now optional for creating a table, and additionally now requires at least one tag if specified
Enterprise
Updates
- Catalog limits for databases, tables, and columns are now configurable using
influxdb3 serveoptions:--num-database-limit--num-table-limit--num-total-columns-per-table-limit
- Improvements to licensing prompts for clarity
- Other general performance improvements
Fixes
- Home license thread count log errors
v3.0.0
Core
Breaking Changes
- Parquet cache configuration: Replaced
--parquet-mem-cache-size-mboption with--parquet-mem-cache-size. The new option accepts values in megabytes (as an integer) or as a percentage of total available memory (for example,20%). The default value changed from1000MB to20%of total available memory. The environment variableINFLUXDB3_PARQUET_MEM_CACHE_SIZE_MBwas replaced withINFLUXDB3_PARQUET_MEM_CACHE_SIZE. (#26023) - Memory settings updates:
- Force snapshot memory threshold now defaults to
50%of available memory - DataFusion execution memory pool now defaults to
20%of available memory
- Force snapshot memory threshold now defaults to
General Updates
- Performance and reliability improvements.
Enterprise
Token Support
- Authorization is now turned on by default.
- Token support for database level permissions are now available.
- Token support for system level queries are now available.
General Updates
- You can now use Commercial, Trial, and At-Home licenses.
v3.0.0-0.beta.3
Core: revision f881c5844bec93a85242f26357a1ef3ebf419dd3
Enterprise: revision 6bef9e700a59c0973b0cefdc6baf11583933e262
Core
General Improvements
- InfluxDB 3 now supports graceful shutdowns when sending the interrupt signal to the service.
Bug fixes
- Empty batches in JSON format results are now handled properly
- The Processing Engine now properly extracts data from DictionaryArrays
Enterprise
Multi-node improvements
- Query nodes now automatically detect new ingest nodes
Bug fixes
- Several fixes for compaction planning and processing
- The Processing Engine now properly extracts data from DictionaryArrays
v3.0.0-0.beta.2
Core: revision 033e1176d8c322b763b4aefb24686121b1b24f7c
Enterprise: revision e530fcd498c593cffec2b56d4f5194afc717d898
This update brings several backend performance improvements to both Core and Enterprise in preparation for additional new features over the next several weeks.
v3.0.0-0.beta.1
Core
Features
Query and storage enhancements
- New ability to stream response data for CSV and JSON queries, similar to how JSONL streaming works
- Parquet files are now cached on the query path, improving performance
- Query buffer is incrementally cleared when snapshotting, lowering memory spikes
Processing engine improvements
- New Trigger Types:
- Scheduled: Run Python plugins on custom, time-defined basis
- Request: Call Python plugins via HTTP requests
- New in-memory cache for storing data temporarily; cached data can be stored for a single trigger or across all triggers
- Integration with virtual environments and install packages:
- Specify Python virtual environment via CLI or
VIRTUAL_ENVvariable - Install packages or a
requirements.txt
- Specify Python virtual environment via CLI or
- Python plugins are now implemented through triggers only. Simply create a trigger that references your Python plugin code file directly
- Snapshots are now persisted in parallel, improving performance by running jobs simultaneously, rather than sequentially
- Write to logs from within the Processing Engine
Database and CLI improvements
- You can now specify the precision on your timestamps for writes using the
--precisionflag. Includes nano/micro/milli/seconds (ns/us/ms/s) - Added a new
showsystem subcommand to display system tables with different options via SQL (default limit: 100) - Clearer table creation error messages
Bug fixes
- If a database was created and the service was killed before any data was written, the database would not be retained
- A last cache with specific “value” columns could not be queried
- Running CTRL-C no longer stopped an InfluxDB process, due to a Python trigger
- A previous build had broken JSON queries for RecordBatches
- There was an issue with the distinct cache that caused panics
Parameter changes
For Core and Enterprise, there are parameter changes for simplicity:
| Old Parameter | New Parameter |
|---|---|
--writer-id--host-id | --node-id |
Enterprise features
Cluster management
- Nodes are now associated with clusters, simplifying compaction, read replication, and processing
- Node specs are now available for simpler management of cache creations
Mode types
- Set
ingest,query,compact, andprocessindividually per node
Enterprise parameter changes
For Enterprise, additional parameters for the serve command have been consolidated for simplicity:
| Old Parameter | New Parameter |
|---|---|
--read-from-node-ids--compact-from-node-ids | --cluster-id |
--run-compactions--mode=compactor | --mode=compact--mode=compact |
In addition to the above changes, --cluster-id is now a required parameter for all new instances.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB 3 Core and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.