Skip to content

Releases: apache/iotdb

Apache IoTDB 2.0.11

Choose a tag to compare

@HTHou HTHou released this 11 Sep 10:02
7c0de06

Break change

  • This version raises the minimum required JDK version to 17.

Features & Improvements

  • Metadata: SHOW TIMESERIES supports sorting by measurement name.
  • Query: Support SQL statements that contain only a SELECT clause.
  • Region: Support manually repairing partitioned tables using SQL.
  • Views: Support logical views.
  • Metadata: Add the COUNT DATABASE statement for the table model.
  • IoTConsensus: Support multiple directories when IoTConsensus receives snapshots.
  • Region: The EXTEND REGION and REMOVE REGION syntaxes support a regionId list, allowing multiple regions to be processed at once.
  • Query: EXPLAIN ANALYZE supports JSON output format.
  • Mods: Strengthen memory control for queries involving mods. Memory usage must also be controllable for a single large, GB-level mods2 file.
  • Data Ingestion: When deleting data, send requests only to the region group to which the current table belongs.
  • Protocol Layer: Add memory control at the protocol layer.
  • UDF: Add an InternalSession interface to the UDF API.
  • Pipe: Modify the real-time data definition logic.
  • Functions: Support subsequent-value filling.
  • SQL Clauses: GROUP BY and ORDER BY support aliases defined with AS in the SELECT clause.
  • Parameter Configuration: Support hot reloading of cluster runtime configurations.
  • Communication Encryption: Support mutual authentication for encrypted client communications.
  • Query: Support writing query results to a TsFile at a specified path using SQL.
  • High Availability: Support high availability for table management, device management, writable-view management, TTL management, database management, and user privileges.
  • Client: Support a Node.js client. Only version 2.x is supported.
  • Edge Edition: To facilitate use on edge devices with limited memory, introduce an Edge Edition that limits the combined memory usage of the ConfigNode and DataNode to 512 MB. The target workload is approximately 10,000 measurements operating at 1 Hz for read and write workloads. The first version will primarily adjust certain JVM and default configuration parameters; future versions may continue evolving toward a more integrated DataNode–ConfigNode architecture.

Bugs

  • Query: In the tree and table models, comparisons between integer and floating-point values in query filter conditions behave inconsistently.
  • Scaling: During scale-in validation, IoTConsensusQueue under IoTConsensus Used Memory on the monitoring dashboard displays a negative value.
  • Load TsFile: When the receiving end has write privileges, LOAD TSFILE fails with No permissions for this operation, please add privilege SYSTEM, and the data is not synchronized.
  • SSL: Fix NullPointerException: Cannot invoke "String.contains(java.lang.CharSequence)" because the return value of "java.lang.Throwable.getMessage()" is null.
  • SSL: Improve the error message displayed when SSL is enabled in the security package but the CLI connects to the cluster without specifying SSL, making the message more explicit.
  • Cluster Management: During validation of Issue 0228, a new problem was encountered: after restarting the cluster, one node remained in the Unknown state and produced no enjoy logs, indicating that the main thread was blocked. However, the node could still perform compaction normally.
  • Scaling: During scale-in, the CompressionRatio field for a DataRegion in the Adding state displays a negative value in SHOW REGIONS.
  • Region: Preserve two decimal places for the CompressionRatio field in SHOW REGIONS results.
  • Scaling: During scale-in, after restarting the cluster, the CompressionRatio field for most DataRegions in SHOW REGIONS is NaN, even though it had a value before the restart.
  • ConfigNode: Fix a ConfigNode thread leak. In an IoTV2 3C3D deployment with three replicas, running SQL covering tree-model test cases caused the number of ConfigNodeRPC-Processor threads to reach 3,000. The cluster could no longer be connected to, and the ConfigNode/DataNode reported NullPointerExceptions.
  • Query: Fix an error in CAST(1.1 AS FLOAT): java.lang.UnsupportedOperationException: org.apache.tsfile.read.common.block.column.DoubleColumn. The operation is expected to succeed.
  • DataNode: PipeTsFileEpochProgressIndexKeeper retains more than 50,000 TsFileResources, causing the DataNode to run out of memory. In an IoTV2 3C3D deployment with two replicas, concurrent reads, writes, and deletes were performed while one DataNode was stopped; after 54 hours of testing, one DataNode ran out of memory and generated a 23-GB OOM dump with ON_HEAP_MEMORY="20G".
  • User Management: Concurrent execution of LIST USER, CREATE USER, and DROP USER may result in 301: Ratis request failed Unknown. The ConfigNode log shows Caused by: java.util.ConcurrentModificationException: null.
  • IoTConsensus: In a 3C3D deployment with two replicas, concurrent reads, writes, and deletes were performed while a DataNode was stopped. One DataNode process exited and generated a 25-GB dump file.
  • Metadata: Prohibit creating devices on template measurements and their subpaths.
  • Region: A frame size error, Frame size (69670459) larger than protect max size (67108864), may cause a query to hang. The system should return an appropriate error message instead.

New Contributors

Full Changelog: v2.0.10...v2.0.11

Apache IoTDB 2.0.10

Choose a tag to compare

@HTHou HTHou released this 04 Jul 05:44
3c26382

Features & Improvements

  • Data Query: Support schema-level and table-level storage space statistics
  • Data Query: Add DEBUG SQL capability and optimize the result set of Explain Analyze
  • Data Query: Support set operations (UNION/INTERSECT/EXCEPT) and Common Table Expressions (CTE) in the table model
  • Data Query: Add IF scalar function, binary functions and APPROX_PERCENTILE aggregate function for the table model
  • Data Query: Optimize display fields of the show queries command, add three new columns: client IP that initiates the query, timeout threshold, and total request waiting latency
  • Storage Management: Provide C-language driver SDK interfaces, including parameter binding, automatic failover for multi-node switching and other fault-tolerant capabilities
  • System Management: Add the capability to manually trigger node load balancing
  • System Management: Add progress query capability for the remove datanode operation
  • System Management: Introduce the show configuration statement to view cluster configuration information
  • System Management: Add statistics for the number of slow write requests
  • AI Management: Add two built-in models: Moirai2 and Toto
  • AI Management: Enable AINode to manage multiple models under the same model_type
  • AI Management: Support loading built-in models for CPU inference with isolated inference processes

Bugs

  • Fix the issue that partition tables get lost when leader switch happens on single-node ConfigNode
  • Fix the bug where configurations delivered via set configuration to a single DataNode take effect on all other DataNodes unexpectedly
  • Fix the occasional continuous accumulation of reservedSize for timeout-only queries across multiple devices in tree model, which triggers query errors after hitting the max capacity limit
  • Fix the parsing error in tree-model-to-table conversion logic when tree paths consist entirely of numeric characters
  • Correct abnormal output of show devices root.db.** when root.db itself is a device, making it display root.db properly
  • Fix the failure of kill query and query timeout mechanism when the client holds the connection open without fully consuming all result sets
  • Fix array index out-of-bounds error caused by null values in attribute fields on the receiver side, which blocks the data synchronization pipeline
  • Fix connection pool leakage exceptions in the C# client
  • Fix exceptions occurring in the C++ client when write redirection is enabled while dn_rpc_address is configured to 0.0.0.0 on DataNode server
  • Fix abnormal repeated broadcasting of deletion markers (Deletions) during the load operation
  • Fix the issue that rows with null inserted fields cannot be synchronized to the receiver in real-time data synchronization scenarios
  • Fix incorrect idempotency logic for out-of-order TTL-expired data on the synchronization receiver, which leads to repeated synchronization of expired data
  • Fix the problem that enable-send-tsfile-limit parameter cannot be manually configured for historical Pipes split from full-data Pipe tasks
  • Fix Pipe temporary stoppage triggered by insufficient memory of a single subtask within synchronization jobs
  • Fix the issue that modifying username/password of source or sink in write-back-sink model generates error logs and prevents data from being received on the sink side
  • Fix permission issue preventing non-root users from stopping the AINode process
  • Mitigate memory leaks that tend to occur during long-running continuous inference of models running on CPU

Full Changelog: v2.0.8...v2.0.10

Apache IoTDB 2.0.8

Choose a tag to compare

@CRZbulabula CRZbulabula released this 13 Apr 07:26
b88b5dc

Features & Improvements

  • Data Query: Added list display for available DataNode nodes
  • Data Query: Added a system table for statistics on query latency in the table model
  • Data Query: Python SessionDataset supported converting TsBlock to DataFrame and returning DataFrame in batches
  • Storage Management: Supported custom column names for the TIME column
  • Storage Management: Supported viewing the complete definition statement of created tables/views via SQL
  • System Management: Added a system table for DataNode node connection status in the table model
  • Stream Processing: Pipe synchronization supported excluding specified devices / measurement points
  • Stream Processing: Supported specifying multiple exact paths in the path parameter of tree model data synchronization pipe statements
  • Stream Processing: Supported comma-separated mixed use of source.pattern and source.path parameters when filtering paths in Pipe
  • AI Management: Built-in Chronos-2 model supports prediction functions.
  • AI Management: Built-in Timer-XL and Sundial models supported concurrent inference
  • Others: Fixed security vulnerabilities CVE-2025-12183, CVE-2025-66566, and CVE-2025-11226
  • ...

Bugs

  • Fixed the issue where the result set returned by the query was empty after last cache hit.
  • Fixed the issue where reverse query with time filter conditions might miss partial data when a sequence in the memtable contained more than 200,000 points in TVList.
  • Fixed the issue that aligned time series query timed out because canSkip failed to filter out firstTimeseriesMetadata.
  • Fixed the issue where the result returned by LAST query with alias should be adjusted to the measurement alias.
  • Fixed the issue where time filter conditions incorrectly filtered valid data in latest point query under specific cases.
  • Fixed the issue that deletion would fail if performed immediately after a failed write operation.
  • Fixed the potential NPE issue when using the active load function to load TsFiles that use non-default time columns.
  • ...

New Contributors

Full Changelog: v2.0.7...v2.0.8

Apache IoTDB 1.3.7

Choose a tag to compare

@HTHou HTHou released this 04 Mar 07:52
43db8fb

Features & Improvements

  • Others: Remove risky RPC interfaces.
  • Others: Remove JEXL functions.
  • Others: Check naming when creating a Pipe.
  • Others: Change the default client RPC service address to 127.0.0.1.
  • Others: Modify code to make internal services bind to the value specified by dn_internal_address instead of the default address.

Bugs

  • Fixed an issue in the partition table automatic deletion logic: Only TTL configured at the DB level takes effect, using the maximum TTL value within the DB.

Full Changelog: v1.3.6...v1.3.7

Apache IoTDB 2.0.7

Choose a tag to compare

@HTHou HTHou released this 04 Mar 07:53
29de7cb

Features & Improvements

  • Others: Remove risky RPC interfaces.
  • Others: Remove JEXL functions.
  • Others: Check naming when creating a Pipe.
  • Others: Change the default client RPC service address to 127.0.0.1.
  • Others: Modify code to make internal services bind to the value specified by dn_internal_address instead of the default address.

Bugs

  • Fixed an issue in the partition table automatic deletion logic: Only TTL configured at the DB level takes effect, using the maximum TTL value within the DB.

Full Changelog: v2.0.6...v2.0.7

Apache IoTDB 2.0.6

Choose a tag to compare

@HTHou HTHou released this 20 Jan 06:17
c6ecbde

Features & Improvements

  • Data Query: Supports table model query and write-back functions.
  • Data Query: The MATCH RECOGNIZE feature for table models supports aggregate functions to capture continuous data for analysis and calculation.
  • Data Query: Added built-in scalar functions bit manipulation functions for table models.
  • Data Query: Added pushdown-enabled EXTRACT time function for table models.
  • Others: Fixed security vulnerabilities CVE-2025-12183, CVE-2025-66566 and CVE-2025-11226.
  • ...

Bugs

  • Fixed the issue where executing queries with CASE WHEN throws an internal server error.
  • Fixed the issue where creating a view succeeds but querying the view fails when the tree model database name is the same as the device name in tree-to-table scenarios.
  • Fixed the issue where the automatic database creation function fails subsequently if a database is deleted after successful table model data synchronization, and the database is not restarted.
  • Fixed the issue where modifying the password of a user that failed to be created throws an internal server error.
  • Fixed the issue where an error is thrown when using the IF PERMITTED clause to modify sequence encoding and compression settings.
  • Fixed the issue where querying BLOB data types via the tree model RESTAPI interface /rest/v2/query returns garbled results.
  • Fixed the issue where incorrect exception information is displayed when checking pipe status after creating a pipe in a table model that only contains tree-to-table views.
  • Fixed the issue where the number of server connections keeps increasing when using a user without MAINTAIN permission (non-root user in table models) in a Session.
  • ...

Full Changelog: v2.0.5...v2.0.6

Apache IoTDB 1.3.6

Choose a tag to compare

@HTHou HTHou released this 07 Jan 01:47
ecbd390

Features & Improvements

  • Data Query: Optimized query performance for multiple scenarios, including the multi-series Last query.
  • Data Query: Added the FastLastQuery interface to the Java SDK, supporting more efficient Last query operations.
  • Data Query: Adjusted the tree-model fetchSchema to return data in segmented streaming mode, improving response speed in large-data-volume scenarios.
  • Storage Management: Optimized memory management to avoid memory leak risks and ensure long-term stable system operation.
  • Storage Management: Optimized the file compaction mechanism to enhance compaction efficiency and reduce system storage resource consumption.
  • Data Synchronization: Optimized Pipe SQL parameter configurations to support specifying asynchronous loading methods.
  • Data Synchronization: Added a syntactic sugar feature that automatically splits full-volume Pipe creation SQL into real-time synchronization and historical synchronization.
  • System Management: Added a global configuration item for data type compression methods, supporting on-demand adjustment of storage compression strategies.
  • Others: Fixed security vulnerabilities CVE-2025-12183, CVE-2025-66566 and CVE-2025-11226.
  • ...

Bugs

  • Fixed the issue where selecting discontinuous sequence files for the settle task from the sequence zone under device-level TTL would trigger an overlap error during execution.
  • Fixed the issue where running the pattern_match custom function in tree-model SQL (3C3D deployment) would throw an error indicating "tsDataType" is null.
  • Fixed the issue where TTL would continuously write data into the modification cache in fast compaction mode, resulting in slow compaction speed.
  • Fixed the stack overflow issue that occurred when performing value filter queries with a large number of devices without adding the align by device clause.
  • Fixed the issue where loading TsFiles with empty value chunks across time partitions would generate TsFiles with misaligned chunks.
  • Fixed the incorrect processing logic of TransformOperator for empty TsBlocks.
  • Fixed the issue where the number of server connections would keep increasing when using a user without MAINTAIN permission in a Session.
  • Fixed the issue where Load would ignore mods import under certain special circumstances (e.g., mismatched aligned types or inconsistent table schemas).
  • Fixed the issue where data that had been deleted would be resynchronized to the receiver if mod files existed when Pipe pattern was configured.
  • Fixed the issue where info logs related to TTL checks would still be printed during compaction scheduling even when TTL was not configured.
  • ...

Full Changelog: v1.3.5...v1.3.6

Apache IoTDB 1.3.5

Choose a tag to compare

@HTHou HTHou released this 11 Sep 08:47
30ee981

Improvements

  • Storage Module: Optimize user password encryption by changing the algorithm to SHA-256
  • ...

Bugs

  • Fixed the array out-of-bounds exception in cross-Region aggregate query with align by device
  • Fixed the error in aggregate queries with order by time + align by device for single or multiple devices spanning across Regions
  • Fixed the "out of memory" error in query with large TEXT objects + align by device + order by time
  • Fixed the issue where the last query with where time > X and time < X was not applied to partitioned table fetching, resulting in failure to hit PartitionCache
  • Fixed the error in using change_point function + align by device when single device data spans multiple Regions
  • Fixed the OOM (Out of Memory) issue caused by the asynchronous submission queue of pipeTransferFile
  • Fixed the memory leak issue in pipe password detection
  • For the pipe receiver and during Load, change the behavior of'clear schema cache' to 'update last cache'
  • Optimize the loading speed of TsFile when there are a large number of measuring points and the mods file contains deletions of a large number of measuring points
  • ...

Full Changelog: v1.3.4-1...v1.3.5

Apache IoTDB 2.0.5

Choose a tag to compare

@HTHou HTHou released this 21 Aug 03:02
0917050

Features & Improvements

  • Data Query: Support manual creation of tree-to-table views
  • Data Query: Table model adds window functions
  • Data Query: Table model adds the aggregate function approx_most_frequent
  • Data Query: Table model JOIN function expansion, supporting LEFT & RIGHT JOIN, ASOF LEFT JOIN
  • Data Query: Table model supports row pattern recognition, enabling capture of continuous data for analysis and calculation
  • Storage Management: Table model adds multiple system tables, such as: VIEWS (table view information), MODELS (model information), etc.
  • AI Management: AINode adds two built-in models: Timer-XL and Timer-Sundial
  • AI Management: AINode supports inference functions for tree models and table models
  • ...

Bugs

  • Fixed the issue where the where time > X and time < X in last query was not applied to partitioned table fetching, failing to hit PartitionCache
  • Fixed the error in aggregate query with order by time + align by device for single device across regions
  • Fixed the error in aggregate query with order by time + align by device for multiple devices across regions
  • Data synchronization batching supports sink.batch.max-delay-ms, providing more fine-grained cache time control
  • Fixed the potential NPE issue when the tablet contains null values during data synchronization with sink format=tsfile
  • Fixed the incorrect processing result of pipe processor when writing tablets with null values with duplicate timestamps
  • Fixed the issue of tree model load updating table model schema cache
  • Fixed the issue where disruptor queue close could not be completed, which might cause the DN stop script to get stuck
  • Fixed multiple issues of data synchronization in normal scenarios, restart scenarios, and deletion scenarios
  • Fixed the time formatting issue when exporting table model to csv
  • ...

New Contributors

Full Changelog: v2.0.4...v2.0.5

Apache IoTDB 2.0.4

Choose a tag to compare

@HTHou HTHou released this 09 Jul 07:07
3400fa8

Features & Improvements

  • Data Query: Added user-defined table functions (UDTF) and various built-in table functions to the table model.
  • Data Query: Added support for ASOF INNER JOIN on time columns in the table model.
  • Data Query: Added the approximate aggregation function approx_count_distinct to the table model.
  • Stream Processing: Added support for asynchronous loading of TsFile through SQL.
  • System Management: Added support for disaster recovery load balancing strategy in replica selection during scaling down.
  • System Management: Adapted to Windows Server 2025.
  • Scripts and Tools: Categorized and organized script tools, and separated Windows-specific scripts.
  • ...

Bugs

  • Fixed the memory leak issue in the WAL compression buffer.
  • Fixed the issue where the async connector gets stuck after running for a long time.
  • Fixed the issue where data subscription cannot be terminated after using data export scripts.
  • Fixed the issue where pipe restarts frequently due to insertnode and resource management memory problems under memory pressure.
  • Fixed the NPE issue triggered during memory statistics estimation on the data synchronization receiver end.
  • Fixed the error when configuring ConsumerConstant.NODE_URLS_KEY as a cluster address while using SubscriptionPullConsumer to consume data.
  • Fixed the deadlock issue on DN startup caused by concurrent agent pipe metadata fetching and CN metadata pushing.
  • ...

New Contributors

Full Changelog: v2.0.3...v2.0.4