diff --git a/content/influxdb3/core/reference/cli/influxdb3/show/retention.md b/content/influxdb3/core/reference/cli/influxdb3/show/retention.md new file mode 100644 index 0000000000..7c6e2a231d --- /dev/null +++ b/content/influxdb3/core/reference/cli/influxdb3/show/retention.md @@ -0,0 +1,16 @@ +--- +title: influxdb3 show retention +description: > + The `influxdb3 show retention` command displays retention policies and effective + retention periods for tables in your InfluxDB 3 Core server. +menu: + influxdb3_core: + parent: influxdb3 show + name: influxdb3 show retention +weight: 410 +source: /shared/influxdb3-cli/show/retention.md +--- + + diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/show/retention.md b/content/influxdb3/enterprise/reference/cli/influxdb3/show/retention.md new file mode 100644 index 0000000000..3942abf7cf --- /dev/null +++ b/content/influxdb3/enterprise/reference/cli/influxdb3/show/retention.md @@ -0,0 +1,16 @@ +--- +title: influxdb3 show retention +description: > + The `influxdb3 show retention` command displays effective + retention periods for tables in your InfluxDB 3 Enterprise server. +menu: + influxdb3_enterprise: + parent: influxdb3 show + name: influxdb3 show retention +weight: 410 +source: /shared/influxdb3-cli/show/retention.md +--- + + diff --git a/content/shared/influxdb3-cli/show/retention.md b/content/shared/influxdb3-cli/show/retention.md new file mode 100644 index 0000000000..eed5b5002f --- /dev/null +++ b/content/shared/influxdb3-cli/show/retention.md @@ -0,0 +1,90 @@ +The `influxdb3 show retention` command displays effective retention periods for tables in your {{< product-name >}} server. + +## Usage + + + +```bash +influxdb3 show retention [OPTIONS] +``` + +## Options + +| Option | | Description | +| :----- | :----------- | :--------------------------------------------------------------------------------------- | +| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) | +| | `--token` | *({{< req >}})* Authentication token | +| | `--database` | Filter retention information by database name | +| | `--format` | Output format (`pretty` *(default)*, `json`, `jsonl`, `csv`, or `parquet`) | +| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) | +| `-h` | `--help` | Print help information | +| | `--help-all` | Print detailed help information | + +### Option environment variables + +You can use the following environment variables to set command options: + +| Environment Variable | Option | +| :------------------------ | :----------- | +| `INFLUXDB3_HOST_URL` | `--host` | +| `INFLUXDB3_DATABASE_NAME` | `--database` | +| `INFLUXDB3_AUTH_TOKEN` | `--token` | + +## Examples + +- [Show retention for all tables](#show-retention-for-all-tables) +- [Show retention for a specific database](#show-retention-for-a-specific-database) +- [Show retention in JSON format](#show-retention-in-json-format) + +### Show retention for all tables + + + +```bash +influxdb3 show retention \ + --host http://localhost:8181 \ + --token YOUR_AUTH_TOKEN +``` + +### Show retention for a specific database + + + +```bash +influxdb3 show retention \ + --host http://localhost:8181 \ + --token YOUR_AUTH_TOKEN \ + --database mydb +``` + +### Show retention in JSON format + + + +```bash +influxdb3 show retention \ + --host http://localhost:8181 \ + --token YOUR_AUTH_TOKEN \ + --format json +``` + +## Output + +The command displays the following information for each table: + +- **Database**: The database name +- **Table**: The table name +- **Retention**: The *effective* retention period in human-readable format (for example, "7d" for 7 days, "24h" for 24 hours, "infinite" for no retention) +- **Source**: Where the retention is defined (`table`, `database`, or `infinite`) + +### Example output + +``` +Database | Table | Retention | Source +---------|-------------|-----------|---------- +mydb | cpu | 7d | database +mydb | mem | 24h | table +mydb | disk | infinite | infinite +``` + +Tables with table-level retention policies override the database-level retention. Tables without explicit retention policies inherit the database retention or have infinite retention if none is set. diff --git a/content/shared/influxdb3-write-guides/http-api/v3-write-lp.md b/content/shared/influxdb3-write-guides/http-api/v3-write-lp.md index df392f5822..6fdd2f8d5c 100644 --- a/content/shared/influxdb3-write-guides/http-api/v3-write-lp.md +++ b/content/shared/influxdb3-write-guides/http-api/v3-write-lp.md @@ -21,7 +21,7 @@ syntax as previous versions of InfluxDB, and supports the following: - `millisecond` (milliseconds) - `second` (seconds) -> [!Note] +> \[!Note] > A bug currently prevents abbreviated precision values (`ns`, `n`, `us`, `u`, `ms`, `s`) from working with the `/api/v3/write_lp` endpoint. Use the full names (`nanosecond`, `microsecond`, `millisecond`, `second`) instead. Abbreviated values will be supported in a future release. ### Auto precision detection @@ -45,6 +45,7 @@ The following examples show how to write data with different timestamp precision [Seconds](#) {{% /code-tabs %}} {{% code-tab-content %}} + ```bash # Auto precision (default) - timestamp magnitude determines precision curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors" \ @@ -55,41 +56,76 @@ curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors" \ The timestamp `1708976567` is automatically detected as seconds. {{% /code-tab-content %}} {{% code-tab-content %}} + ```bash # Explicit nanosecond precision curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=nanosecond" \ --header "Authorization: Bearer DATABASE_TOKEN" \ --data-raw "cpu,host=server1 usage=50.0 1708976567000000000" ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```bash # Millisecond precision curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=millisecond" \ --header "Authorization: Bearer DATABASE_TOKEN" \ --data-raw "cpu,host=server1 usage=50.0 1708976567000" ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```bash # Second precision curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=second" \ --header "Authorization: Bearer DATABASE_TOKEN" \ --data-raw "cpu,host=server1 usage=50.0 1708976567" ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} +## Configure gzip compression + +The `/api/v3/write_lp` endpoint supports gzip-encoded request bodies for efficient data transfer. + +When sending gzip-compressed data to InfluxDB, include the `Content-Encoding: gzip` header in your InfluxDB API request. + +### Multi-member gzip support + +{{% product-name %}} supports multi-member gzip payloads (concatenated gzip files per [RFC 1952](https://www.rfc-editor.org/rfc/rfc1952)). This allows you to: + +- Concatenate multiple gzip files and send them in a single request +- Maintain compatibility with InfluxDB v1 and v2 write endpoints +- Simplify batch operations using standard compression tools + +#### Example: Write concatenated gzip files + +```bash +# Create multiple gzip files +echo "cpu,host=server1 usage=50.0 1708976567" | gzip > batch1.gz +echo "cpu,host=server2 usage=60.0 1708976568" | gzip > batch2.gz + +# Concatenate and send in a single request +cat batch1.gz batch2.gz | curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors" \ + --header "Authorization: Bearer DATABASE_TOKEN" \ + --header "Content-Encoding: gzip" \ + --data-binary @- +``` + ## Request body - Line protocol {{}} -_The following example uses [cURL](https://curl.se/) to send a write request using -the {{< influxdb3/home-sample-link >}}, but you can use any HTTP client._ +*The following example uses [cURL](https://curl.se/) to send a write request using +the {{< influxdb3/home-sample-link >}}, but you can use any HTTP client.* {{% influxdb/custom-timestamps %}} + ```bash curl -v "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=second" \ --data-raw "home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1735545600 @@ -119,15 +155,17 @@ home,room=Kitchen temp=23.1,hum=36.6,co=22i 1735585200 home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1735588800 home,room=Kitchen temp=22.7,hum=36.5,co=26i 1735588800" ``` + {{% /influxdb/custom-timestamps %}} - [Partial writes](#partial-writes) - [Accept partial writes](#accept-partial-writes) - [Do not accept partial writes](#do-not-accept-partial-writes) - [Write responses](#write-responses) - - [Use no_sync for immediate write responses](#use-no_sync-for-immediate-write-responses) + - [Use no\_sync for immediate write responses](#use-no_sync-for-immediate-write-responses) -> [!Note] +> \[!Note] +> > #### InfluxDB client libraries > > InfluxData provides supported InfluxDB 3 client libraries that you can @@ -176,7 +214,7 @@ With `accept_partial=true` (default), InfluxDB: With `accept_partial=false`, InfluxDB: -- Rejects _all_ points in the batch +- Rejects *all* points in the batch - Returns a `400 Bad Request` status code and the following response body: ``` @@ -192,8 +230,8 @@ With `accept_partial=false`, InfluxDB: } ``` -_For more information about the ingest path and data flow, see -[Data durability](/influxdb3/version/reference/internals/durability/)._ +*For more information about the ingest path and data flow, see +[Data durability](/influxdb3/version/reference/internals/durability/).* ## Write responses @@ -201,23 +239,23 @@ By default, {{% product-name %}} acknowledges writes after flushing the WAL file to the Object store (occurring every second). For high write throughput, you can send multiple concurrent write requests. -### Use no_sync for immediate write responses +### Use no\_sync for immediate write responses To reduce the latency of writes, use the `no_sync` write option, which -acknowledges writes _before_ WAL persistence completes. +acknowledges writes *before* WAL persistence completes. When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the Object store. -> [!Tip] +> \[!Tip] > Using `no_sync=true` is best when prioritizing high-throughput writes over -> absolute durability. +> absolute durability. - Default behavior (`no_sync=false`): Waits for data to be written to the Object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response. - With `no_sync=true`: Reduces write latency, but increases the risk of data - loss in case of a crash before WAL persistence. + loss in case of a crash before WAL persistence. The following example immediately returns a response without waiting for WAL persistence: @@ -226,3 +264,41 @@ persistence: curl "http://localhost:8181/api/v3/write_lp?db=sensors&no_sync=true" \ --data-raw "home,room=Sunroom temp=96" ``` + +## Response headers + +All HTTP responses from {{% product-name %}} include the following standard headers: + +### cluster-uuid + +The `cluster-uuid` response header contains the catalog UUID of your {{% product-name %}} instance. This header is included in all HTTP API responses, including: + +- Write requests (`/api/v3/write_lp`, `/api/v2/write`, `/write`) +- Query requests +- Administrative operations +- Authentication failures +- CORS preflight requests + +#### Use cases + +The `cluster-uuid` header enables you to: + +- **Identify cluster instances**: Programmatically determine which InfluxDB instance handled a request +- **Monitor deployments**: Track requests across multiple InfluxDB instances in load-balanced or multi-cluster environments +- **Debug and troubleshooting**: Correlate client requests with specific server instances in distributed systems + +#### Example response + +```bash +curl -v "http://localhost:8181/api/v3/write_lp?db=sensors" \ + --header "Authorization: Bearer DATABASE_TOKEN" \ + --data-raw "cpu,host=server1 usage=50.0" +``` + +The response headers contain the `cluster-uuid`: + +``` +< HTTP/1.1 204 No Content +< cluster-uuid: 01234567-89ab-cdef-0123-456789abcdef +< date: Tue, 19 Nov 2025 20:00:00 GMT +``` diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md index 6d469ccf19..94a30069a2 100644 --- a/content/shared/v3-core-enterprise-release-notes/_index.md +++ b/content/shared/v3-core-enterprise-release-notes/_index.md @@ -1,10 +1,35 @@ -> [!Note] +> \[!Note] +> > #### 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.7.0 {date="2025-11-19"} + +### Core + +#### Features + +- **HTTP API Enhancements**: + - All HTTP responses now include a `cluster-uuid` header containing the catalog UUID, enabling clients to identify specific cluster instances programmatically + - HTTP API now supports multi-member gzip payloads enabling batch operations +- **CLI Commands**: + - The new `influxdb3 show retention` command 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") + +#### 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 {date="2025-10-30"} ### Core @@ -14,12 +39,12 @@ - **Quick-Start Developer Experience**: - `influxdb3` now 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. + - 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 `--upload` flag. - - Existing plugin files can now be updated at runtime without recreating triggers. + - Existing plugin files can now be updated at runtime without recreating triggers. - New `system.plugin_files` table and `show plugins` CLI command now provide visibility into all loaded plugin files. - Custom plugin repositories are now supported via `--plugin-repo` CLI flag. - - Python package installation can now be disabled with `--package-manager disabled` for locked-down environments. + - Python package installation can now be disabled with `--package-manager disabled` for locked-down environments. - Plugin file path validation now prevents directory traversal attacks by blocking relative and absolute path patterns. #### Bug fixes @@ -42,7 +67,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Features -- **Custom Plugin Repository**: +- **Custom Plugin Repository**: - Use the `--plugin-repo` option with `influxdb3 serve` to specify custom plugin repositories. This enables loading plugins from personal repos or disabling remote repo access. #### Bug fixes @@ -50,9 +75,9 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - **Database reliability**: - Table index updates now complete atomically before creating new indices, preventing race conditions that could corrupt database state ([#26838](https://github.com/influxdata/influxdb/pull/26838)) - Delete operations are now idempotent, preventing errors during object store cleanup ([#26839](https://github.com/influxdata/influxdb/pull/26839)) -- **Write path**: +- **Write path**: - Write operations to soft-deleted databases are now rejected, preventing data loss ([#26722](https://github.com/influxdata/influxdb/pull/26722)) -- **Runtime stability**: +- **Runtime stability**: - Fixed a compatibility issue that could cause deadlocks for concurrent operations ([#26804](https://github.com/influxdata/influxdb/pull/26804)) - Other bug fixes and performance improvements @@ -66,12 +91,12 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Features -- **Cache optimization**: +- **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 reliability**: - Object store operations now use retryable mechanisms with better error handling #### Operational improvements @@ -79,7 +104,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - **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**: - System tables now provide consistent data across different node modes (ingest, query, compact), enabling better monitoring in multi-node deployments ## v3.4.2 {date="2025-09-11"} @@ -123,8 +148,8 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ### Core #### Bug Fixes -- Upgrading from 3.3.0 to 3.4.x no longer causes possible catalog migration issues ([#26756](https://github.com/influxdata/influxdb/pull/26756)) +- Upgrading from 3.3.0 to 3.4.x no longer causes possible catalog migration issues ([#26756](https://github.com/influxdata/influxdb/pull/26756)) ## v3.4.0 {date="2025-08-27"} @@ -138,21 +163,22 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ([#26734](https://github.com/influxdata/influxdb/pull/26734)) - **Azure Endpoint**: - Use the `--azure-endpoint` option with `influxdb3 serve` to specify the Azure Blob Storage endpoint for object store connections. ([#26687](https://github.com/influxdata/influxdb/pull/26687)) -- **No_Sync via CLI**: +- **No\_Sync via CLI**: - Use the `--no-sync` option with `influxdb3 write` to skip waiting for WAL persistence on write and immediately return a response to the write request. ([#26703](https://github.com/influxdata/influxdb/pull/26703)) - + #### Bug Fixes + - Validate tag and field names when creating tables ([#26641](https://github.com/influxdata/influxdb/pull/26641)) - Using GROUP BY twice on the same column no longer causes incorrect data ([#26732](https://github.com/influxdata/influxdb/pull/26732)) #### Security & Misc + - Reduce verbosity of the TableIndexCache log. ([#26709](https://github.com/influxdata/influxdb/pull/26709)) - WAL replay concurrency limit defaults to number of CPU cores, preventing possible OOMs. ([#26715](https://github.com/influxdata/influxdb/pull/26715)) -- Remove unsafe signal_handler code. ([#26685](https://github.com/influxdata/influxdb/pull/26685)) +- Remove unsafe signal\_handler code. ([#26685](https://github.com/influxdata/influxdb/pull/26685)) - Upgrade Python version to 3.13.7-20250818. ([#26686](https://github.com/influxdata/influxdb/pull/26686), [#26700](https://github.com/influxdata/influxdb/pull/26700)) - 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: @@ -160,18 +186,16 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Features - **Token Provisioning**: - - Generate _resource_ and _admin_ tokens offline and use them when starting the database. + - 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 the `influxdb3 serve` command to automate the selection of the license type. + Use `--license-type` \[home | trial | commercial] option to the `influxdb3 serve` command to automate the selection of the license type. #### Bug Fixes - Don't initialize the Processing Engine when the specified `--mode` does not require it. - Don't panic when `INFLUXDB3_PLUGIN_DIR` is set in containers without the Processing Engine enabled. - - ## v3.3.0 {date="2025-07-29"} ### Core @@ -257,7 +281,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ## v3.2.0 {date="2025-06-25"} -**Core**: revision 1ca3168bee +**Core**: revision 1ca3168bee\ **Enterprise**: revision 1ca3168bee ### Core @@ -290,11 +314,11 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Features -- **License management improvements**: +- **License management improvements**: - New `influxdb3 show license` command to display current license information - **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-period` and `update table --retention-period` - - Set or clear table-specific retention policies independent of database settings + - Set or clear table-specific retention periods independent of database settings - **Compaction improvements**: - Address compactor restart issues for better reliability - Track compacted generation durations in catalog for monitoring @@ -307,6 +331,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - **License handling**: Trim whitespace from license file contents after reading to prevent validation issues ## v3.1.0 {date="2025-05-29"} + **Core**: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264 **Enterprise**: revision 2cb23cf32b67f9f0d0803e31b356813a1a151b00 @@ -314,6 +339,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ### Core #### Token and Security Updates + - Named admin tokens can now be created, with configurable expirations - `health`, `ping`, and `metrics` endpoints can now be opted out of authorization - `Basic $TOKEN` is now supported for all APIs @@ -321,6 +347,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - 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 @@ -328,6 +355,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - 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 @@ -336,24 +364,28 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ### Enterprise #### Token and Security Updates + - Resource tokens now use resource names in `show tokens` - Tokens can now be granted `CREATE` permission 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: +- Replaces remaining "INFLUXDB\_IOX" Dockerfile environment variables with the following: - `ENV INFLUXDB3_OBJECT_STORE=file` - `ENV 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 {date="2025-05-16"} + **Core**: revision 384c457ef5f0d5ca4981b22855e411d8cac2688e **Enterprise**: revision 34f4d28295132b9efafebf654e9f6decd1a13caf @@ -362,20 +394,19 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Fixes -- Prevent operator token, `_admin`, from being deleted. +- Prevent operator token, `_admin`, from being deleted. ### Enterprise #### Fixes -- Fix object store info digest that is output during onboarding. +- 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 {date="2025-05-01"} + **Core**: revision d80d6cd60049c7b266794a48c97b1b6438ac5da9 **Enterprise**: revision e9d7e03c2290d0c3e44d26e3eeb60aaf12099f29 @@ -384,39 +415,40 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### 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. +- 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 json` option in the token creation output. -- Remove the Last Values Cache size limitation to improve performance and flexibility. -- Incorporate additional performance improvements. +- Support the `--format json` option 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 by` tag columns that use escape quotes. -- Sort the IOx table schema consistently in the `SHOW TABLES` command. +- Fix a counting bug in the distinct cache. +- Fix how the distinct cache handles rows with null values. +- Fix handling of `group by` tag columns that use escape quotes. +- Sort the IOx table schema consistently in the `SHOW TABLES` command. ### Enterprise #### Updates -- Introduce a command and system table to list cluster nodes. -- Support multiple custom permission argument matches. -- Improve overall performance. +- 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-cores` thread allocation limit. +- Initialize the object store only once. +- Prevent the Home license server from crashing on restart. +- Enforce the `--num-cores` thread allocation limit. ## v3.0.1 {date="2025-04-16"} + **Core**: revision d7c071e0c4959beebc7a1a433daf8916abd51214 **Enterprise**: revision 96e4aad870b44709e149160d523b4319ea91b54c @@ -424,15 +456,18 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat ### Core #### Updates + - TLS CA can now be set with an environment variable: `INFLUXDB3_TLS_CA` - Other general performance improvements #### Fixes -- The `--tags` argument is now optional for creating a table, and additionally now requires at least one tag _if_ specified + +- The `--tags` argument 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 serve` options: - `--num-database-limit` - `--num-table-limit` @@ -441,8 +476,8 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - Other general performance improvements #### Fixes -- **Home** license thread count log errors +- **Home** license thread count log errors ## v3.0.0 {date="2025-04-14"} @@ -471,50 +506,59 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat - You can now use Commercial, Trial, and At-Home licenses. - ## v3.0.0-0.beta.3 {date="2025-04-01"} + **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 +- Several fixes for compaction planning and processing +- The Processing Engine now properly extracts data from DictionaryArrays ## v3.0.0-0.beta.2 {date="2025-03-24"} + **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. - +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 {date="2025-03-17"} + ### 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 + - *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_ENV` variable @@ -524,11 +568,13 @@ This update brings several backend performance improvements to both Core and Ent - 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 `--precision` flag. Includes nano/micro/milli/seconds (ns/us/ms/s) - Added a new `show` system 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 @@ -539,14 +585,15 @@ This update brings several backend performance improvements to both Core and Ent For Core and Enterprise, there are parameter changes for simplicity: -| Old Parameter | New Parameter | -|---------------|---------------| -| `--writer-id`
`--host-id` | `--node-id` | +| 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 + +- 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 @@ -557,9 +604,9 @@ For Core and Enterprise, there are parameter changes for simplicity: 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` | +| 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.