TimechoDB v1.3.1 Released: New Tools and Enhanced Observability

We are excited to announce the release of the version 1.3.1 of TimechoDB, based on Apache IoTDB. This update brings a host of new features and system optimizations.

New Features & Improvements

  • Added scripts for easy cluster startup and shutdown (start-all/stop-all.sh and start-all/stop-all.bat)

  • Introduced scripts for one-click collecting instance information (collect-info.sh and collect-info.bat)

  • Fill clause now supports setting a timeout threshold for filling, ensuring no filling occurs beyond the specified time threshold

  • SQL queries now support querying cluster activation information

  • Tiered storage now includes transmission rate control during migration

  • Simplified time range specification for data synchronization, now the start and end times can be set directly

  • Data synchronization now supports SSL transmission protocol (iotdb-thrift-ssl-sink plugin)

  • Enhanced system observability (added dispersion monitoring for cluster nodes and observable distributed task scheduling framework)

  • Optimized default output strategy of logs

  • Improved memory control forload TsFile, covering the entire process

  • Rest-API (version 2) now returns column types

Bug Fixes

  • Fixed issues with group by month when precision is not in milliseconds

  • Fixed anomalies with group by month when duration contains multiple units

  • Addressed problems with limit and offset not being pushed down when there is an order by clause

  • Corrected anomalies in scenarios involving combinitions ofgroup by month + align by device + limit

  • Resolved deserialization errors during IoT protocol synchronization

  • Handled concurrent exceptions during delete timeseries

  • Fixed issues with group by level not executing correctly for view sequences

  • Addressed potential metadata creation failure due to increased election timeout

Feature Spotlight: Fill Clause Supports Setting Fill Timeout Threshold - No Filling Beyond Time Threshold

The Fill clause is a clause used in queries, allowing for filling of null values in time series data using specified strategies (e.g., forward filling, constant filling, or linear filling). In real-world IoTDB scenarios, some users consider data to be irrelevant if the time interval between the current value and the previous value exceeds a certain threshold. Therefore, we have extended the functionality of the Fill clause to support setting a timeout range. If the time interval exceeds this range, no filling will occur even if there are previous values available.

Taking the scenario below as an example, the user has set the timeout duration as 2 minutes. The intervals between the timestamps of rows 2 & 3 and that of the previous value (row 1) were less than 2 minuts, thus, filling with previous data point is necessary. The timestamps of the values in rows 4 and 5, however, had a delay of more than 2 minutes, therefore, no forward filling shall be excuted.

This scenario refers to the fill clause fill(previous, 2m) the IoTDB fill statement FILL(PREVIOUS, 2m) can be used, and the resulting filled data would appear as shown.

SQL Statements

fillClause
    : FILL LR_BRACKET (LINEAR | PREVIOUS | constant) (COMMA interval=DURATION_LITERAL)? RR_BRACKET
    
DURATION_LITERAL
    : (INTEGER_LITERAL+ (Y|M O|W|D|H|M|S|M S|U S|N S))+
    ;