IoTDB (Internet of Things Database) is a data management system for time series data

Overview

English | 中文

IoTDB

Main Mac and Linux Main Win coveralls GitHub release License Language grade: Java IoTDB Website Maven Version Gitpod Ready-to-Code Slack Status

Overview

IoTDB (Internet of Things Database) is a data management system for time series data, which can provide users specific services, such as, data collection, storage and analysis. Due to its light weight structure, high performance and usable features together with its seamless integration with the Hadoop and Spark ecology, IoTDB meets the requirements of massive dataset storage, high throughput data input, and complex data analysis in the industrial IoT field.

Main Features

Main features of IoTDB are as follows:

  1. Flexible deployment strategy. IoTDB provides users a one-click installation tool on either the cloud platform or the terminal devices, and a data synchronization tool bridging the data on cloud platform and terminals.
  2. Low cost on hardware. IoTDB can reach a high compression ratio of disk storage.
  3. Efficient directory structure. IoTDB supports efficient organization for complex time series data structure from intelligent networking devices, organization for time series data from devices of the same type, fuzzy searching strategy for massive and complex directory of time series data.
  4. High-throughput read and write. IoTDB supports millions of low-power devices' strong connection data access, high-speed data read and write for intelligent networking devices and mixed devices mentioned above.
  5. Rich query semantics. IoTDB supports time alignment for time series data across devices and measurements, computation in time series field (frequency domain transformation) and rich aggregation function support in time dimension.
  6. Easy to get started. IoTDB supports SQL-Like language, JDBC standard API and import/export tools which is easy to use.
  7. Seamless integration with state-of-the-practice Open Source Ecosystem. IoTDB supports analysis ecosystems such as, Hadoop, Spark, and visualization tool, such as, Grafana.

For the latest information about IoTDB, please visit IoTDB official website. If you encounter any problems or identify any bugs while using IoTDB, please report an issue in jira.

Outline

Quick Start

This short guide will walk you through the basic process of using IoTDB. For a more detailed introduction, please visit our website's User Guide.

Prerequisites

To use IoTDB, you need to have:

  1. Java >= 1.8 (1.8, 11 to 17 are verified. Please make sure the environment path has been set accordingly).
  2. Maven >= 3.6 (If you want to compile and install IoTDB from source code).
  3. Set the max open files num as 65535 to avoid "too many open files" error.
  4. (Optional) Set the somaxconn as 65535 to avoid "connection reset" error when the system is under high load.
    # Linux
    > sudo sysctl -w net.core.somaxconn=65535
    
    # FreeBSD or Darwin
    > sudo sysctl -w kern.ipc.somaxconn=65535
    

Installation

IoTDB provides three installation methods, you can refer to the following suggestions, choose the one fits you best:

  • Installation from source code. If you need to modify the code yourself, you can use this method.
  • Installation from binary files. Download the binary files from the official website. This is the recommended method, in which you will get a binary released package which is out-of-the-box.
  • Using Docker:The path to the dockerfile is https://github.com/apache/iotdb/tree/master/docker/src/main

Here in the Quick Start, we give a brief introduction of using source code to install IoTDB. For further information, please refer to User Guide.

Build from source

Prepare Thrift compiler

Skip this chapter if you are using Windows.

As we use Thrift for our RPC module (communication and protocol definition), we involve Thrift during the compilation, so Thrift compiler 0.13.0 (or higher) is required to generate Thrift Java code. Thrift officially provides binary compiler for Windows, but unfortunately, they do not provide that for Unix OSs.

If you have permission to install new softwares, use apt install or yum install or brew install to install the Thrift compiler (If you already have installed the thrift compiler, skip this step). Then, you may add the following parameter when running Maven: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path= .

If not, then you have to compile the thrift compiler, and it requires you install a boost library first. Therefore, we compiled a Unix compiler ourselves and put it onto GitHub, and with the help of a maven plugin, it will be downloaded automatically during compilation. This compiler works fine with gcc8 or later, Ubuntu MacOS, and CentOS, but previous versions and other OSs are not guaranteed.

If you can not download the thrift compiler automatically because of network problem, you can download it yourself, and then either: rename your thrift file to {project_root}\thrift\target\tools\thrift_0.12.0_0.13.0_linux.exe; or, add Maven commands: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path= .

Compile IoTDB

You can download the source code from:

git clone https://github.com/apache/iotdb.git

The default dev branch is the master branch, If you want to use a released version x.x.x:

git checkout release/x.x.x

From v0.11.3 on, the tag name format is change to: vx.x.x:

git checkout vx.x.x

Under the root path of iotdb:

> mvn clean package -DskipTests

Using -P compile-cpp for compiling cpp client (For more details, read client-cpp's Readme file.)

Then the binary version (including both server and cli) can be found at distribution/target/apache-iotdb-{project.version}-all-bin.zip

NOTE: Directories "thrift/target/generated-sources/thrift", "thrift-sync/target/generated-sources/thrift", "thrift-cluster/target/generated-sources/thrift" and "antlr/target/generated-sources/antlr4" need to be added to sources roots to avoid compilation errors in the IDE.

In IDEA, you just need to right click on the root project name and choose "Maven->Reload Project" after you run mvn package successfully.

Configurations

configuration files are under "conf" folder

  • environment config module (iotdb-env.bat, iotdb-env.sh),
  • system config module (iotdb-engine.properties)
  • log config module (logback.xml).

For more information, please see Config Manual.

Start

You can go through the following steps to test the installation, if there is no error returned after execution, the installation is completed.

Start IoTDB

Users can start IoTDB by the start-server script under the sbin folder.

# Unix/OS X
> nohup sbin/start-server.sh >/dev/null 2>&1 &
or
> nohup sbin/start-server.sh -c 
   
     -rpc_port 
    
      >/dev/null 2>&1 &

# Windows
> sbin\start-server.bat -c 
     
       -rpc_port 
      

      
     
    
   
  • "-c" and "-rpc_port" are optional.
  • option "-c" specifies the system configuration file directory.
  • option "-rpc_port" specifies the rpc port.
  • if both option specified, the rpc_port will overrides the rpc_port in conf_path.

Use IoTDB

Use Cli

IoTDB offers different ways to interact with server, here we introduce the basic steps of using Cli tool to insert and query data.

After installing IoTDB, there is a default user 'root', its default password is also 'root'. Users can use this default user to login Cli to use IoTDB. The startup script of Cli is the start-cli script in the folder sbin. When executing the script, user should assign IP, PORT, USER_NAME and PASSWORD. The default parameters are "-h 127.0.0.1 -p 6667 -u root -pw -root".

Here is the command for starting the Cli:

# Unix/OS X
> sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

# Windows
> sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root

The command line cli is interactive, so you should see the welcome logo and statements if everything is ready:

 _____       _________  ______   ______
|_   _|     |  _   _  ||_   _ `.|_   _ \
  | |   .--.|_/ | | \_|  | | `. \ | |_) |
  | | / .'`\ \  | |      | |  | | |  __'.
 _| |_| \__. | _| |_    _| |_.' /_| |__) |
|_____|'.__.' |_____|  |______.'|_______/  version x.x.x


IoTDB> login successfully
IoTDB>

Basic commands for IoTDB

Now, let us introduce the way of creating timeseries, inserting data and querying data.

The data in IoTDB is organized as timeseries. Each timeseries includes multiple data-time pairs, and is owned by a storage group. Before defining a timeseries, we should define a storage group using SET STORAGE GROUP first, and here is an example:

IoTDB> SET STORAGE GROUP TO root.ln

We can also use SHOW STORAGE GROUP to check the storage group being created:

IoTDB> SHOW STORAGE GROUP
+-------------+
|storage group|
+-------------+
|      root.ln|
+-------------+
Total line number = 1

After the storage group is set, we can use CREATE TIMESERIES to create a new timeseries. When creating a timeseries, we should define its data type and the encoding scheme. Here We create two timeseries:

IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE

In order to query the specific timeseries, we can use SHOW TIMESERIES . represent the location of the timeseries. The default value is "null", which queries all the timeseries in the system(the same as using "SHOW TIMESERIES root"). Here are some examples:

  1. Querying all timeseries in the system:
IoTDB> SHOW TIMESERIES
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
|                   timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.temperature| null|      root.ln|   FLOAT|     RLE|     SNAPPY|null|      null|
|     root.ln.wf01.wt01.status| null|      root.ln| BOOLEAN|   PLAIN|     SNAPPY|null|      null|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 2
  1. Querying a specific timeseries(root.ln.wf01.wt01.status):
IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
|              timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.status| null|      root.ln| BOOLEAN|   PLAIN|     SNAPPY|null|      null|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 1

Insert timeseries data is a basic operation of IoTDB, you can use ‘INSERT’ command to finish this. Before insertion, you should assign the timestamp and the suffix path name:

IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)

The data that you have just inserted will display as follows:

IoTDB> SELECT status FROM root.ln.wf01.wt01
+------------------------+------------------------+
|                    Time|root.ln.wf01.wt01.status|
+------------------------+------------------------+
|1970-01-01T00:00:00.100Z|                    true|
|1970-01-01T00:00:00.200Z|                   false|
+------------------------+------------------------+
Total line number = 2

You can also query several timeseries data using one SQL statement:

IoTDB> SELECT * FROM root.ln.wf01.wt01
+------------------------+-----------------------------+------------------------+
|                    Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+------------------------+-----------------------------+------------------------+
|1970-01-01T00:00:00.100Z|                         null|                    true|
|1970-01-01T00:00:00.200Z|                        20.71|                   false|
+------------------------+-----------------------------+------------------------+
Total line number = 2

To change the time zone in Cli, you can use the following SQL:

IoTDB> SET time_zone=+08:00
Time zone has set to +08:00
IoTDB> SHOW time_zone
Current time zone: Asia/Shanghai

Add then the query result will show using the new time zone.

IoTDB> SELECT * FROM root.ln.wf01.wt01
+-----------------------------+-----------------------------+------------------------+
|                         Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+-----------------------------+-----------------------------+------------------------+
|1970-01-01T08:00:00.100+08:00|                         null|                    true|
|1970-01-01T08:00:00.200+08:00|                        20.71|                   false|
+-----------------------------+-----------------------------+------------------------+
Total line number = 2

The commands to exit the Cli are:

IoTDB> quit
or
IoTDB> exit

For more information about the commands supported by IoTDB SQL, please see SQL Reference.

Stop IoTDB

The server can be stopped with "ctrl-C" or the following script:

# Unix/OS X
> sbin/stop-server.sh

# Windows
> sbin\stop-server.bat

Only build server

Under the root path of iotdb:

> mvn clean package -pl server -am -DskipTests

After being built, the IoTDB server is located at the folder: "server/target/iotdb-server-{project.version}".

Only build cli

Under the root path of iotdb:

> mvn clean package -pl cli -am -DskipTests

After being built, the IoTDB cli is located at the folder "cli/target/iotdb-cli-{project.version}".

Usage of CSV Import and Export Tool

see Usage of CSV Import and Export Tool

Frequent Questions for Compiling

see Frequent Questions when Compiling the Source Code

Contact Us

QQ Group

  • Apache IoTDB User Group: 659990460

Wechat Group

  • Add friend: tietouqiao or liutaohua001, and then we'll invite you to the group.

Slack

see Join the community for more!

Comments
  • (欢迎使用/测试IoTDB的公司在此登记) Welcome to leave your company's info if your company are using/testing IoTDB

    (欢迎使用/测试IoTDB的公司在此登记) Welcome to leave your company's info if your company are using/testing IoTDB

    Welcome to register by company + homepage (optional) + use case(optional), your support is important to us. We will sync to official website periodically (TBD).

    欢迎采用/正在测试IoTDB的公司在此登记,您的支持是我们最大的动力。 请按公司名 + 首页(可选) + 应用案例(可选)的格式登记。 后期我们会定期同步至使用公司列表页面。

    opened by jixuan1989 23
  • [IOTDB-565] MQTT Protocol Support

    [IOTDB-565] MQTT Protocol Support

    MQTT Protocol

    MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.

    The MQTT v3.1(an OASIS Standard) protocol support for IoTDB. This module includes the MQTT broker that allows remote devices send messages into IoTDB server directly.

    iotdb-mqtt

    MQTT Broker

    The MQTT Broker provide the ability of direct connection to IoTDB through MQTT. It listen the publish messages from MQTT clients and then write the data into local or remote IoTDB server immediately. The messages payload can be format to events by PayloadFormatter which loaded by java SPI, and the default implementation is JSONPayloadFormatter. The configuration of the broker locate ${IOTDB_HOME}/${IOTDB_CONF}/iotdb-mqtt-broker.properties, and the startup scripts locate${IOTDB_HOME}/sbin/start-mqtt-broker.sh (.bat for windows platform)

    iotdb-mqtt-design

    MQTT Broker Configuration

    The MQTT Broker load configuration from local IoTDB server ${IOTDB_HOME}/${IOTDB_CONF}/iotdb-mqtt-broker.properties by default. If the local config file not exists, then load from classpath /iotdb-mqtt-broker.properties. Otherwise, load from the system defaults.

    Configurations are as following:

    | NAME | DESCRIPTION | DEFAULT | | ------------- |:-------------:|:------:| | mqtt_broker_host | the broker server address Required | 0.0.0.0 | | mqtt_broker_port | the broker port Required | 1883 | | mqtt_broker_user | the broker username Required | root | | mqtt_broker_password | the broker password Required | root | | mqtt_broker_handler_pool_size | the publish handler pool size | 1 | | mqtt_broker_payload_formatter | the message payload formatter | json | | iotdb_host | the iotdb address Required | 127.0.0.1 | | iotdb_port | the iotdb port Required | 6667 | | iotdb_user | the iotdb username Required | root | | iotdb_password | the iotdb password Required | root |

    Examples

    The following is an example which a mqtt client send events to MQTT broker.

           MQTT mqtt = new MQTT();
           mqtt.setHost("127.0.0.1", 1883);
           mqtt.setUserName("root");
           mqtt.setPassword("root");
    
           BlockingConnection connection = mqtt.blockingConnection();
           connection.connect();
    
           Random random = new Random();
           for (int i = 0; i < 10; i++) {
               Map<String,Object> tuple = new HashMap();
               tuple.put("device", "root.sg.d1");
               tuple.put("timestamp", System.currentTimeMillis());
               tuple.put("measurements", "s1");
               tuple.put("values", random.nextDouble());
    
               String payload = JSON.toJSONString(tuple);
               connection.publish("root.sg.d1.s1", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
    
               Thread.sleep(1000);
           }
    
           connection.disconnect();
       }
    
    opened by vesense 21
  • [IOTDB-497] Apache Flink Connector Support

    [IOTDB-497] Apache Flink Connector Support

    We all know that Apache Flink is one of the most popular stream computing engine, which is widely used in IOT scenes.

    This module is the IoTDB integration for Apache Flink, including the IoTDB sink that allows a Flink job to write events into timeseries.

    The changes are as following:

    • Flink IoTDB Sink
    • User defined IoTSerializationSchema interface and the default implementation DefaultIoTSerializationSchema
    • UTs for IoTDB Sink in iotdb-flink-connector/test
    • Examples for IoTDB Sink in example/flink-example
    • Documents
    opened by vesense 16
  • 数据库执行一段时间后,有大量假死的查询出现

    数据库执行一段时间后,有大量假死的查询出现

    问题描述

    • iotdb在线上运行一段时候后,出现很多长时间不终止的查询
    • 不做任何处理再次执行和这些查询相关的语句(使用相同的timeseries),新查询也会失去响应
    • 查询其它的未出现在这里面的timeseries,也会出现这种情况
    • 查询数据库,能找到很多这种处于假死状态的查询语句 1647245808(1)

    配置

    • 系统 CentOS Linux release 7.6.1810
    • iotdb版本: 0.12.4 单节点

    业务数据流程

    • 使用etl工具streamsets,从kafka抽取数据,通过mqtt协议写入到iotdb
    • 下游为多个客户端执行分析查询,存在多个客户端查询同一个timeseries的情况
    • 上游从kafka到iotdb的流程,从监控看一直是正常的
    opened by xufwind95 15
  • 插入数据出现数据错乱现象

    插入数据出现数据错乱现象

    存储结构如下

    root.A.b.b01.min
    root.A.b.b02.min
    root.A.b.b03.min
    root.A.b.....min
    ......
    

    每500ms接收大概100条数据入库

    数据列包括:Time,Contract,Close ..... 客户端用的是cpp-client的Session.cpp, Session.h 直接拷贝到项目中编译使用 保存使用的是session->insertRecord方法

    我明明是 往root.A.b.b01.min里放的数据是2021-04-27 10:31:35.000, b01, 2200root.A.b.b02.min里放的数据是2021-04-27 10:31:35.000, b02, 2700

    结果经常数据出现root.A.b.b01.min里面出现b02的数据,而且存在同样的时间戳 例如:

    2021-04-27 10:31:35.000, b01, 2200
    2021-04-27 10:31:35.000, b02, 2700
    

    这两条数据竟然都进到了root.A.b.b01.min这同一个设备下 导致后面的查询都出现问题 我按照 select Contract,Close from root.A.b.b01.min where time = 2021-04-27 10:31:35 出来的结果Contract是b01 select Contract,Close from root.A.b.b01.min where time = 2021-04-27 10:31:35 and Contract != 'b01' 出来的结果Contract是b02

    注: 数据是1个设备的数据1个设备过来插入的,会存在乱序情况 比如b01先来,存的是05秒的数据,b02后来,存的是03秒的数据,这种情况存在

    错误情况不止1个组存在,比如root.A.c.c07.min里会出现c08的数据;root.C.m.m10.min里会出现m09的数据

    服务器信息: windows 2008 sp1,cpu 8核,32G内存 iotdb版本: 0.11.2 和 0.12.0 都出现此现象

    opened by herowzz 14
  •  [IOTDB-1257] Make a little bit improvement of config and fix some bugs for setting logic

    [IOTDB-1257] Make a little bit improvement of config and fix some bugs for setting logic

    Change logs:

    1. Fix the setting bug, e.g.: RpcTransportFactory.setMaxLength(ioTDBConfig.getThriftMaxFrameSize());. i.e.,Don't put max_frame_ Size as softmaxlength.
    2. Merge initialBufferCapacity and maxFrameSize to thriftDefaultBufferSize. and thriftDefaultBufferSize configable by user.
    3. rename the key from initial_buffer_capacity to thrift_default_buffer_capacity
    4. rename the key from max_frame_size to thrift_max_frame_size
    5. Unified configuration items:
    • RpcUtils.java in the service-rpc module depends on tsfile & thrift moudles
    • Config.java in the iotdb-jdbc module depends on service-rpc & others moudles
    • IoTDBConfig.java in the iotdb-server module depends on service-rpc & iotdb-jdbc moudles

    So, such as initial_buffer_Capacity and Max_frame_size config items should be based on rpcutils RpcUtils.java.

    There is an open question about #3 & #4. Do we need to modify the variable name, which will affect the compatibility? What do you think?

    Module - Cluster 
    opened by sunjincheng121 14
  • failed to insert data using python paho mqtt library

    failed to insert data using python paho mqtt library

    使用 python paho mqtt 插入数据时出现错误: client_id不能为空,且qos必须等于0,不然就会出现错误。

    qos=1 or 2, 则会出现如下错误,结果就是预期应该插入10W条数据的结果只插入了20条数据 image

    iotdb version: 0.10.0 paho-mqtt: 1.5.0

    代码如下

    import random
    
    import paho.mqtt.client as mqtt
    import time
    
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code: " + str(rc))
    
    
    def on_message(client, userdata, msg):
        print(msg.topic + " " + str(msg.payload))
    
    
    client = mqtt.Client(client_id=str(random.uniform(1, 10)))
    # client = mqtt.Client()
    client.username_pw_set("root", "root")
    client.connect('127.0.0.1', 1883)
    
    timestamp = lambda: int(round(time.time() * 1000))
    for i in range(100000):
        message = "{\n" "\"device\":\"root.log.d1\",\n" "\"timestamp\":%d,\n" "\"measurements\":[\"s1\"],\n" "\"values" \
                  "\":[%f]\n" "}" % (timestamp() + 1000 * i, random.uniform(1, 10))
        client.publish('root.log.d1.info', payload=message, qos=0, retain=False)
    client.disconnect()
    
    
    opened by kqkdChen 13
  • [IOTDB-2569]Support ZSTD Compression

    [IOTDB-2569]Support ZSTD Compression

    Description

    https://issues.apache.org/jira/browse/IOTDB-2569

    ZSTD is a new compression method published by Facebook. https://github.com/facebook/zstd

    use pure java ZSTD: https://github.com/luben/zstd-jni The compression ratio is about 0.83

    Eg: IoTDB > CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE, COMPRESSOR=ZSTD

    Content1 ...

    Content2 ...

    Content3 ...


    This PR has:

    • [ ] been self-reviewed.
      • [ ] concurrent read
      • [ ] concurrent write
      • [ ] concurrent read and write
    • [ ] added documentation for new or modified features or behaviors.
    • [ ] added Javadocs for most classes and all non-trivial methods.
    • [ ] added or updated version, license, or notice information
    • [ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
    • [ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage.
    • [ ] added integration tests.
    • [ ] been tested in a test IoTDB cluster.

    Key changed/added classes (or packages if there are too many classes) in this PR
    opened by lyssom 12
  • init dummyIndex after restart cluster

    init dummyIndex after restart cluster

    In current logic, if we restart cluster, and applyIndex is smaller than commitIndex,here are three problems occur.

    • First, we cannot append un-apply logs to commitManager.Like 103 and 104 in the picture,they can not be appended to commitEntries in commitManager.
    • Second, un-commitManager can not append a new log. Like 0 can not be appended to unCommitEntries in unCommitManager.
    • Third, un-applied logs can not be re-applied.That means 103 and 104 could be lost.

    This is all because dummyIndex is initialized to the default value,it cannot return to its pre-reboot state.

    ps.The information in the picture assumes none of these questions exist 6211a9f5a25a465958c041d145f6dd5

    This PR try to resolve this problem,but we may also need a processor to avoid logIndex is too big, dunmmyIndex need to re-initialize if logIndex will be bigger than our expect.

    Module - Cluster 
    opened by cigarl 12
  • New features of cluster scalability and multi-raft

    New features of cluster scalability and multi-raft

    This pr adds two new features:

    1. cluster scalability
    2. multi-raft

    Design docs(currently only in Chinese):

    1. multi-raft: https://cwiki.apache.org/confluence/display/IOTDB/Multi-Raft-For-One-DataGroup+Design+Doc
    2. cluster scalability: https://cwiki.apache.org/confluence/display/IOTDB/Cluster+scalability+design+doc
    Module - Cluster 
    opened by fanhualta 12
  • [IOTDB-1140] [IOTDB-1125] optimize regular data encoding

    [IOTDB-1140] [IOTDB-1125] optimize regular data encoding

    current regular data encoding algorithm:

    Calculate the difference between two adjacent values. The smallest difference is used as the equal-frequency frequency. Determine the data range of this batch of data based on the difference between the last value and the first value. Traverse this batch of data, use a BitSet, compare the difference between two adjacent values with the same frequency, and save the value true by default, If the value is not equal to the equal frequency, calculate the number of equal frequency differences and set the value to false at the corresponding position, indicating that the point is a missing point.

    this algorithm only can identity missing point, if have error point , it will throw exception..

    because BitSet only can do this thing, indicates whether the same frequency exists in a segment of data

    But there is some optimize point..

    If there is an abnormal value in a column of values, the algorithm is deviated if the difference is directly obtained to the minimum value.

    sample: 1000,1100,1800,1400,1500...

    current algorithm be do not use...

    1800 is a error point, we should identity error point, revise data.

    revise data should be : 1000,1100,1300,1400,1500

    opened by wangchao316 12
  • Bump spring-boot-dependencies from 1.5.15.RELEASE to 1.5.22.RELEASE

    Bump spring-boot-dependencies from 1.5.15.RELEASE to 1.5.22.RELEASE

    Bumps spring-boot-dependencies from 1.5.15.RELEASE to 1.5.22.RELEASE.

    Commits
    • 34c62cc Release version 1.5.22.RELEASE
    • 5cd091b Upgrade to Mysql 5.1.48
    • 487774d Upgrade to Spring AMQP 1.7.14
    • 23e2bd4 Upgrade to Spring Integration 4.3.21
    • dbdab8b Upgrade to Spring Data Ingalls-SR23
    • ff5a0e7 Upgrade to Spring Framework 4.3.25
    • 752efd6 Upgrade to Spring Security Oauth 2.0.18.RELEASE
    • a37f571 Upgrade to Spring Security 4.2.13.RELEASE
    • 705551c Upgrade to Spring Cloud Connectors 1.2.9.RELEASE
    • 5537774 Upgrade to Jetty 9.4.19.v20190610
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump reload4j from 1.2.22 to 1.2.24

    Bump reload4j from 1.2.22 to 1.2.24

    Bumps reload4j from 1.2.22 to 1.2.24.

    Commits
    • 9e3b71a prepare release 1.2.24
    • 3f35d07 have Loader javadoc match the code as executed under Java 9 and later
    • 789a2b0 formatting changes only
    • cd95c1c update H2 to 2.1.214
    • 6a5047b reformatting only
    • 60d8aae start work on 1.2.24-SNAPSHOT
    • ddf79cf prepare release 1.2.23
    • aa5e918 Merge pull request #58 from robtimus/automatic-module-name
    • 05f811c Revert "Merge pull request #56 from ppkarwasz/master"
    • 9a029af Merge pull request #56 from ppkarwasz/master
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Fix bug in last query

    Fix bug in last query

    While there exist multi data regions for one series slot, we will add LastMergeSortNode to merge all last query result from different data regions, it will select max time for the same time-series. However, if so, we still need to add default order by parameter for each LastQueryNode in each DataRegion and sort its children by timeseries asc, because LastQueryMergeOperator will assume that all its children returning TsBlock has already been sorted.

    opened by JackieTien97 1
  • [Bug] V1.0.0多设备使用last语法查询报错:301 EXECUTE_STATEMENT_ERROR

    [Bug] V1.0.0多设备使用last语法查询报错:301 EXECUTE_STATEMENT_ERROR

    Search before asking

    • [X] I searched in the issues and found nothing similar.

    Version

    V1.0.0

    Describe the bug and provide the minimal reproduce step

    1. sql语句: select last inv_I_dispersion_level from root.DZ00000001.WZXB000001.WZHL000003.WZNB000002,root.DZ00000001.WZXB000001.WZHL000003.WZNB000003,root.DZ00000001.WZXB000001.WZHL000003.WZNB000004

    2. 以上sql语句查询,任意两个设备组合使用last查询都没问题。

    What did you expect to see?

    1672392305123

    What did you see instead?

    服务端报错:2022-12-30 13:31:51,424 [pool-36-IoTDB-ClientRPC-Processor-2377] WARN o.a.i.d.u.ErrorHandlingUtils:90 - Status code: 301, Query Statement: "SELECT last inv_I_dispersion_level from root.DZ00000001.WZXB000001.WZHL000003.WZNB000002, root.DZ00000001.WZXB000001.WZHL000003.WZNB000003, root.DZ00000001.WZXB000001.WZHL000003.WZNB000004". executeStatement failed org.apache.iotdb.commons.exception.IoTDBException: java.lang.NullPointerException at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.dealWithException(QueryExecution.java:430) at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getResult(QueryExecution.java:413) at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getBatchResult(QueryExecution.java:439) at org.apache.iotdb.db.utils.QueryDataSetUtils.convertTsBlockByFetchSize(QueryDataSetUtils.java:204) at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.lambda$static$1(ClientRPCServiceImpl.java:168) at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementInternal(ClientRPCServiceImpl.java:236) at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatement(ClientRPCServiceImpl.java:825) at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatement.getResult(IClientRPCService.java:3603) at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatement.getResult(IClientRPCService.java:3583) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) at org.apache.iotdb.db.service.thrift.ProcessorWithMetrics.process(ProcessorWithMetrics.java:64) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.NullPointerException: null at org.apache.iotdb.db.mpp.execution.operator.process.last.LastQueryUtil.appendLastValue(LastQueryUtil.java:108) at org.apache.iotdb.db.mpp.execution.operator.process.last.LastQueryMergeOperator.next(LastQueryMergeOperator.java:171) at org.apache.iotdb.db.mpp.execution.driver.Driver.processInternal(Driver.java:186) at org.apache.iotdb.db.mpp.execution.driver.Driver.lambda$processFor$1(Driver.java:125) at org.apache.iotdb.db.mpp.execution.driver.Driver.tryWithLock(Driver.java:270) at org.apache.iotdb.db.mpp.execution.driver.Driver.processFor(Driver.java:118) at org.apache.iotdb.db.mpp.execution.schedule.DriverTaskThread.execute(DriverTaskThread.java:64) at org.apache.iotdb.db.mpp.execution.schedule.AbstractDriverThread.run(AbstractDriverThread.java:74)

    Anything else?

    服务端的data数据 data.zip

    Are you willing to submit a PR?

    • [x] I'm willing to submit a PR!
    opened by anykhub 1
Releases(v1.0.0)
  • v1.0.0(Dec 2, 2022)

    New Features

    • New architecture that supports standalone and cluster mode with two types of nodes: ConfigNode, DataNode
    • Support ConfigNode management: Start/Add, Stop, Remove
    • Support DataNode management: Start/Add, Stop, Remove
    • Support replication of ConfigNode, Schema and Data
    • Support Consensus Protocol: Simple, IoT, Ratis
    • Support Cluster management sql: show cluster, show regions
    • Support administration in Cluster: User, Permission, Role management
    • Authorization when login and executing a command
    • Support MPP(massively parallel process) framework in cluster
    • Support insertion, deletion and all query types in Cluster
    • Support CSV import/export tools
    • Support TsFile import/export tools
    • Support create/show/count/delete database
    • Support show/count devices
    • Support create/show/count timeseries
    • Support schema template management
    • Support flush on local/cluster
    • Support clear cache on local/cluster
    • Support metric for DataNode and ConfigNode with output to IoTDB, Prometheus, and JMX
    • Support DBAPI in python client
    • Support RestApi, MQTT for cluster
    • Support having clause and between expression in query
    • Support order by timeseries in last query
    • Support hot configuration of data_dirs
    • Support stateful, stateless Trigger
    • Support UDF framework
    • Support new UDF 'change_points
    • Support Continuous Query
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-1.0.0-all-bin.zip(75.56 MB)
    apache-iotdb-1.0.0-all-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-all-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-cli-bin.zip(31.46 MB)
    apache-iotdb-1.0.0-cli-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-confignode-bin.zip(65.70 MB)
    apache-iotdb-1.0.0-confignode-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-confignode-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-datanode-bin.zip(74.87 MB)
    apache-iotdb-1.0.0-datanode-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-datanode-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-grafana-plugin-bin.zip(30.96 MB)
    apache-iotdb-1.0.0-grafana-plugin-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-grafana-plugin-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-library-udf-bin.zip(78.24 MB)
    apache-iotdb-1.0.0-library-udf-bin.zip.asc(833 bytes)
    apache-iotdb-1.0.0-library-udf-bin.zip.sha512(128 bytes)
    apache-iotdb-1.0.0-source-release.zip(12.94 MB)
    apache-iotdb-1.0.0-source-release.zip.asc(833 bytes)
    apache-iotdb-1.0.0-source-release.zip.sha512(128 bytes)
    README.md(17.75 KB)
    README_ZH.md(16.72 KB)
    RELEASE_NOTES.md(69.65 KB)
  • v0.13.3(Oct 17, 2022)

    Improvements

    • [IOTDB-4525] Accelerate restart process
    • [IOTDB-3164] Add compaction memory control
    • [IOTDB-4364] Reduce read amplification in compaction
    • [IOTDB-4424] Specify error message when time value of insert sql can not be correctly parsed
    • [IOTDB-4492] Control total file size of cross space compaction task
    • [IOTDB-4542] Optimize schema validate error message
    • Optimize pattern matching in Regexp

    Bug Fixes

    • [IOTDB-3988] Fix reload problem of metric module and refactor metric module
    • [IOTDB-4239] fix NPE to insert a null value into a TEXT timeseries
    • [IOTDB-4318] Fix RESTAPI data type conversion failed
    • [IOTDB-4320] Fix insert row with null cause recover throw NPE
    • [IOTDB-4343] Fix NPE when using MQTT protocol
    • [IOTDB-4357] fix start in windows, IOTDB_LOG_DIR_IS_UNDEFINED folder appears
    • [IOTDB-4585] Incorrect query result after deleting data for aligned timeseries
    • [IOTDB-4615] TTL adapts timestamp precision
    • [IOTDB-4636] IndexOutOfBoundsException when compacting aligned series
    • Fix PathAlreadyExistException during concurrent auto creating aligned timeseries
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.13.3-all-bin.zip(61.89 MB)
    apache-iotdb-0.13.3-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.3-cli-bin.zip(10.57 MB)
    apache-iotdb-0.13.3-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.3-client-cpp-mac-x86_64-bin.zip(830.05 KB)
    apache-iotdb-0.13.3-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.3-grafana-connector-bin.zip(19.54 MB)
    apache-iotdb-0.13.3-grafana-connector-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-grafana-connector-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.3-grafana-plugin-bin.zip(146.91 KB)
    apache-iotdb-0.13.3-grafana-plugin-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-grafana-plugin-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.3-server-bin.zip(40.00 MB)
    apache-iotdb-0.13.3-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.3-server-bin.zip.sha512(128 bytes)
  • v0.14.0-preview3(Oct 14, 2022)

  • v0.14.0-preview2(Sep 13, 2022)

  • v0.13.2(Sep 1, 2022)

    Improvements

    [IOTDB-2669] Improve C++ client insertTablet performance [IOTDB-3087] enlarge default value of avg_series_point_number_threshold [IOTDB-3861] Enable insert null values in Session [IOTDB-3996] REST API nonQuery support Continuous Query [IOTDB-4120] Optimize memory allocation of Expression [IOTDB-4190] update documents about nifi-iotdb-bundle REST support "select into" in nonQuery API Import-CSV supports specify data type and no need quotation for text value

    Bug Fixes

    [IOTDB-2736] DELETE_STORAGE_GROUP can not be granted to user (reporting 401) [IOTDB-2760] Ordinary users do not grant any permissions, but can still show operations [IOTDB-2769] Fix auth mapping of GRANT_ROLE_PRIVILEGE and GRANT_USER_ROLE [IOTDB-3302] Without any authorization, ordinary users still have the right to query other user information [IOTDB-4023] The C++ interface query result returns records error [IOTDB-4047] Query NPE after change device alignment [IOTDB-4096] Fix the names of metric pushed to Prometheus are inconsistency in micrometer and dropwizard [IOTDB-4194] IOException happened in Compaction [IOTDB-4215] Fix incorrect aggregate query results due to wrong unseq file traversal order [IOTDB-4216] Fix execute create aligned timeseries but a non-aligned timeseries created [IOTDB-4222] DeadLock when concurrently deleting and creating storage groups [ISSUE-6774] Connection error when using DataGrip with JDBC driver [ISSUE-6937] After restart, the aligned series turns to non-aligned [ISSUE-6987] Fix select error when selecting a single quotation mark

    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.13.2-all-bin.zip(61.81 MB)
    apache-iotdb-0.13.2-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.2-cli-bin.zip(10.54 MB)
    apache-iotdb-0.13.2-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.2-client-cpp-mac-x86_64-bin.zip(829.84 KB)
    apache-iotdb-0.13.2-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.2-grafana-connector-bin.zip(19.53 MB)
    apache-iotdb-0.13.2-grafana-connector-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-grafana-connector-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.2-grafana-plugin-bin.zip(146.69 KB)
    apache-iotdb-0.13.2-grafana-plugin-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-grafana-plugin-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.2-server-bin.zip(39.93 MB)
    apache-iotdb-0.13.2-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.2-server-bin.zip.sha512(128 bytes)
  • v0.13.1(Aug 1, 2022)

    New Features

    • [IOTDB-2602] "Without null" supports filtering based on partial columns
    • [IOTDB-3873] Aligned timeseries support single point fill query
    • [ISSUE-6171] Support createTimeseriesOfTemplate in Session
    • [IOTDB-3742] Support COUNT NODES by root.**

    Improvements

    • [IOTDB-2820] Update UserGuide SQL about Trigger
    • [IOTDB-2837] Add check and sort for NumpyTablet to make sure timestamps are ordered
    • [IOTDB-2838] Check and auto correct endian type for NumpyTablet
    • [IOTDB-2873] provide json template for grafana
    • [IOTDB-2888] Unary expression can followed by a constant
    • [IOTDB-3747] Default Paging of Schema Query with limit 10000
    • [IOTDB-3797] Print detailed info in session when connection fails
    • [IOTDB-3851] C++ client method of tablet sorting optimization
    • [IOTDB-3879] Modify document about the Programming-Cpp-Native-API
    • [IOTDB-3901] C++ client method of insertRecordsOfOneDevice sorting optimization

    Bug Fixes

    • [IOTDB-2753] Insert a time series with a null value and report 500
    • [IOTDB-2759] Result of "Show paths set schema template" or "using template" is not complete
    • [IOTDB-2775] Fix throwing exception when query non-exist device in TsFileSequenceReader
    • [IOTDB-2787] Fix aligned mem chunk concurrent problem
    • [IOTDB-2826] Fix can not drop schema template
    • [IOTDB-2828] Update system_version in system.properties after upgrading
    • [IOTDB-2835] Fix empty page in selfcheck method of TsFileSequenceReader
    • [IOTDB-2837] Add check and sort for NumpyTablet to make sure timestamps are ordered
    • [IOTDB-2852] The import-csv tool can not import the data to nonaligned device
    • [IOTDB-2859] Fix python tablet with None value is incorrect
    • [IOTDB-2862] Fix SQL injection risks of grafana-connector
    • [IOTDB-2864] Fix Read-only occurred when insert Text value to aligned timeseries
    • [IOTDB-2882] Fix unary expression display bug
    • [IOTDB-2902] Handling user privileges for aligned timeseries related features
    • [IOTDB-2903] Fix show latest timeseries result does not sorted by time
    • [IOTDB-2910] Fix count result not right after deleting storage group
    • [IOTDB-2915] MLogTxtWriter error while parsing CreateAlignedTimeseriesPlan
    • [IOTDB-2922] Fix NPE when compacting with files that contains zero device
    • [IOTDB-2924] UDF Framework: index overflow while iterating sliding windows
    • [IOTDB-2983] Serialization error in Partial insert
    • [IOTDB-2999] Remove useless config and fix default value error.
    • [IOTDB-3018] Fix compaction bugs on handling deleted target file
    • [IOTDB-3029] The prefix path generated by the select into target sequence contains * and ** currently unchecked
    • [IOTDB-3045] The query result contains some timeseries that have been deleted
    • [IOTDB-3120] Print the tsfile name when meet IOException
    • [IOTDB-3158] Fix NPE exception when use iotdb-reporter
    • [IOTDB-3160] TsFile will be corrupted when flushing memtable appears OOM
    • [IOTDB-3168] Forbid the path with * could be inserted
    • [IOTDB-3171] Fix NPE when getting modification file
    • [IOTDB-3219] Fix stop-server on windows
    • [IOTDB-3247] Recover aligned sensors after deleting timeseries, query lost data
    • [IOTDB-3301] Tag recover bug after IoTDB server restart
    • [IOTDB-3364] Fix Query stucked with null valued aligned timeseries bug
    • [IOTDB-3420] Fix show paths set schema template t1 error
    • [IOTDB-3494] Fix TypeError in py-session
    • [IOTDB-3523] Fix the count and COUNT not equal bug when querying with group by level
    • [IOTDB-3645] Fix use statistics bug in aggregation query
    • [IOTDB-3651] Stop compaction schedule when all compaction is disable
    • [IOTDB-3709] Fix a loop occurred in TsFileResourceList, causing the query to fail and oom occurs
    • [IOTDB-3730] Fix ArrayIndexOutOfBounds when flushing a memtable
    • [IOTDB-3795] Remove setting read-only when handling compaction exception
    • [IOTDB-3803] failed to insert data of TEXT by session
    • [IOTDB-3816] Fix /zero bug in recover
    • [IOTDB-3822] Fix cross compaction overlap bug
    • [IOTDB-3826] Fix duplicate success when concurrent creating same timeseries
    • [IOTDB-3858] IndexOutOfBoundsException: bitIndex < 0
    • [ISSUE-5482] Fix Release zip files include incorrect version of Guava
    • [ISSUE-5773] Aggregation result is not complete
    • [ISSUE-5964] Fix bug of aligned timeseries time duplicated aggregation
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.13.1-all-bin.zip(62.17 MB)
    apache-iotdb-0.13.1-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.1-cli-bin.zip(10.54 MB)
    apache-iotdb-0.13.1-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.1-client-cpp-mac-x86_64-bin.zip(834.33 KB)
    apache-iotdb-0.13.1-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.1-grafana-connector-bin.zip(19.54 MB)
    apache-iotdb-0.13.1-grafana-connector-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-grafana-connector-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.1-grafana-plugin-bin.zip(146.14 KB)
    apache-iotdb-0.13.1-grafana-plugin-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-grafana-plugin-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.1-server-bin.zip(40.29 MB)
    apache-iotdb-0.13.1-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.1-server-bin.zip.sha512(128 bytes)
  • v0.12.6(Jul 8, 2022)

    Improvements

    • [IOTDB-3515] Make the message clear when loading empty TsFile

    Bug Fixes

    • [IOTDB-2773] Fix overlapped data should be consumed first bug
    • [IOTDB-3135] Fix parameter max_select_unseq_file_num_in_each_unseq_compaction doesn't work
    • [IOTDB-3292] Fix chunk size overflow in level compaction
    • [IOTDB-3392] Fix File doesn't exist when moving TsFile when virtual_storage_group > 1
    • [IOTDB-3398] Remove the exception when query meet a device is not in TsFile, which is a normal case
    • [IOTDB-3602] Skip empty TsFile when loading directory
    • [ISSUE-4399] When non-root user get an empty query result, return no permission error message
    • [ISSUE-5809] Fix bug: sum aggregation result return 0 when no data
    • Fix data in seq files overlapped
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.12.6-all-bin.zip(47.09 MB)
    apache-iotdb-0.12.6-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-cli-bin.zip(9.54 MB)
    apache-iotdb-0.12.6-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-client-cpp-mac-x86_64-bin.zip(56.88 KB)
    apache-iotdb-0.12.6-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-cluster-bin.zip(26.51 MB)
    apache-iotdb-0.12.6-cluster-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-cluster-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-grafana-bin.zip(20.03 MB)
    apache-iotdb-0.12.6-grafana-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-grafana-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-server-bin.zip(25.05 MB)
    apache-iotdb-0.12.6-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.6-server-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.6-source-release.zip(231.46 MB)
    apache-iotdb-0.12.6-source-release.zip.asc(833 bytes)
    apache-iotdb-0.12.6-source-release.zip.sha512(128 bytes)
  • v0.14.0-preview1(Jul 3, 2022)

    The 0.14.0-preview1 version only contains the new cluster version.

    New Features

    • The new cluster contains two types of nodes: ConfigNode, DataNode
    • Support ConfigNode Deploy: Start(Add), Stop
    • Support DataNode Deploy: Start(Add), Stop
    • Data and Schema replication management
    • Support Consensus Protocol: Standalone, MultiLeader, Ratis
    • Schema Management: Memory, SchemaFile, RocksDB
    • Cluster monitor sql: show cluster, show regions
    • Administration: User, Permission, Role management
    • Authorization when login and executing a command
    • Load Balance for data and schema
    • Native API for reading and writing
    • Support CSV import/export tools
    • Support create/show/count/delete Storage Group
    • Support create/show/count timeseries
    • Support show/count devices
    • Flush is supported in cluster
    • Support monitor DataNode and ConfigNode through Prometheus and Grafana
    • Support Data insertion and deletion
    • Query Types: Raw data Query, Aggregation, Group By Time, Group By Level, Last query
    • Support Fill null values in the query result
    • Support order by time and limit, offset, slimit, soffset
    • Support value filter and expression
    • Python API: Add support for DBAPI

    Incompatible changes

    • Rename the following scripts and configuration files

    | Previous | Now | |------------------------------|--------------------------------| | conf/iotdb-engine.properties | conf/iotdb-datanode.properties | | conf/iotdb-env.sh & bat | conf/datanode-env.sh & bat |

    • Rename the DataNode configuration parameters

    | Previous | Now | |----------------------------------|---------------------| | internal_ip | internal_address | | target_confignode / config_nodes | target_config_nodes |

    • Rename the ConfigNode configuration parameters

    | Previous | Now | |----------------------------------|---------------------| | target_confignode / config_nodes | target_config_nodes |

    Acknowledgements:

    543202718, 23931017wu, Alima777, Beyyes, Bigreybear, cchen1115, chaow, Chengjianyun, ChengShengHan, ChenSiHou, Choubenson, chuchaofan, ChuShaoHuan, Cigarl, CloudWise-Lukemiao, Cmlmakahts, Cornmonster, Cpaulzy, CRZbulabula, dafei1288, Ericpai, Flashzxi, FrankHWD, greenhandatsjtu, HeimingZ, HTHou, huanhuanerer, huzk8, irvine0109, iskytek, JackieTien97, jamber001, JerryZhangZZY, jiazhiren, jixuan1989, jun0315, Krystal-xiao, leety1228, leonardodalinky, Liuminghui233, LIU-WEI-git, ljn55966005, lyssom, MarosZyk, MinaQin, MrQuanzy, Mychaow, Noorall, OneSizeFitsQuorum, Plutooooooo, Qiaojialin, RYH61, Samperson1997, SilverNarcissus, SpriCoder, SteveYurongSu, swpulk, SzyWilliam, THUMarkLau, tisonkun, trin1t, Tsunghanjacktsai, wallezhang, wangchao316, wanghui42, wayblink, Wei-hao-Li, Xiaoyehanren, Xingtanzjr, Xinzhongtianxia, Xuanronaldo, Yifuzhou, Yschengzi, Yuyuankang, yyt86, ZhanGHanG9991, zjx1230

    Source code(tar.gz)
    Source code(zip)
  • v0.13.0(Mar 18, 2022)

    New Features

    • [IOTDB-924] Support insert multi rows in SQL
    • [IOTDB-959] Add Create Storage Group Grammar
    • [IOTDB-1037] set rpc_compression as a parameter in JDBC URL
    • [IOTDB-1059] Support sql statement insert without timestamp
    • [IOTDB-1143] Support Continuous query
    • [IOTDB-1199] Support aligned timeseries and schema template
    • [IOTDB-1319] Support Trigger
    • [IOTDB-1391] Add a new Aggregation function extreme (max absolute value)
    • [IOTDB-1399] Add a session interface to connect multiple nodes
    • [IOTDB-1400] Support arithmetic operations in SELECT clauses
    • [IOTDB-1403] Dictionary encoding for TEXT
    • [IOTDB-1490] Add built-in UDTFs: sinh, conh, tanh
    • [IOTDB-1514] Support null in insertTablet
    • [IOTDB-1524] Support SELECT ... INTO ... clause
    • [IOTDB-1647] Nested Expressions in SELECT clauses
    • [IOTDB-1673] CLI upgrade to JLine3
    • [IOTDB-1739] Constant timeseries generating functions (const, pi and e)
    • [IOTDB-1760] Support avg, count, extreme, first_value, last_value, max_time, max_value, min_time, min_value, sum aggregations in group by fill
    • [IOTDB-1761] Add metric framework for IoTDB
    • [IOTDB-1775] Add CAST function to convert data type
    • [IOTDB-1823] Support group by multi level
    • [IOTDB-1844] Query support timeseries prefix and suffix matching: root.*sg*
    • [IOTDB-1859] Support REST API
    • [IOTDB-1860] New Grafana plugin
    • [IOTDB-1886] Support Constant Expressions in Select Clauses
    • [IOTDB-1973] Supports aggregate queries, constants, and arithmetic nested expressions in SELECT clauses
    • [IOTDB-1986] Support select UDF as alisa clauses
    • [IOTDB-1989] Spark-IoTDB-connector support inserting data
    • [IOTDB-2131] Support previous, linear, constant value fill funtion New fill
    • [IOTDB-2593] Support using IoTDB with JDK17
    • [ISSUE-3811] Provide a data type column for the last query dataset
    • add rabbitmq example

    Improvements

    • [IOTDB-1280] Rewrite the Antlr grammar file
    • [IOTDB-1372] Enhance management of TsFileResource
    • [IOTDB-1428] Ask query threads to quit if query is timeout
    • [IOTDB-1450] Deletion should only delete related time partitions
    • [IOTDB-1463] Implement builder pattern for Session and SessionPool
    • [IOTDB-1477] Optimize code logic of generateAlignByDevicePlan()
    • [IOTDB-1559] Refactor the IT framework
    • [IOTDB-1564] Make hearbeat and election timeout parameters be configurable
    • [IOTDB-1581] Consider deletions when recovering tsFileResource of incomplete tsfile
    • [IOTDB-1607] Optimize Tracing
    • [IOTDB-1613] Recover mods file if write modification failed
    • [IOTDB-1639] Refactoring the cluster class structure to make it consistent with the server module
    • [IOTDB-1730] client-cpp, enhance session::insertTablet() etc.'s performance
    • [IOTDB-1852] Accelerate queryies by using statistics
    • [IOTDB-1857] Remove useless handle logic for CountPlan in executeNonQuery in cluster module
    • [IOTDB-1884] Distinguish between zero and null values in sum aggregation
    • [IOTDB-1924] Remove the operation of clearing the cache after the compaction is over
    • [IOTDB-1950] Add Bloom Filter cache for query
    • [IOTDB-2001] Remove redundant StorageGroupNotReadyException
    • [IOTDB-2011] Update last cache while doing show latest timeseries query
    • [IOTDB-2022] SessionDataSet implements AutoCloseable
    • [IOTDB-2075] Accelerate the process of insertTablets by using thread pool
    • [IOTDB-2119] IoTDB CSV export tools add timestamp accuracy setting function
    • [IOTDB-2162] Simplify the recovery merge process
    • [IOTDB-2176] Limit target chunk size when performing inner space compaction
    • [IOTDB-2193] Reduce unnecessary lock operations of RaftLogManager to improve writing performance
    • [IOTDB-2195] Control the concurrent query execution thread
    • [IOTDB-2632] Set compaction_write_throughput_mb_per_sec to 16 by default
    • [ISSUE-3445] New compaction strategy and compaction scheduling strategy
    • [ISSUE-3856] refine exception handling logic in commitTo in RaftLogManager
    • [Cluster] No need to shake hands with itself when one node restart

    Incompatible changes

    • [IOTDB-1026] Support wildcard ** in Path And Replace PrefixPath usage with PathPattern in IOTDB-SQL
    • [IOTDB-1620] Support backtick (`) character and double quotes (") to quote identifiers
    • [IOTDB-1650] Rename the sql command move to unload

    Miscellaneous changes

    • [IOTDB-1342] modify error message about LIMIT and OFFSET used in conjunction with the FILL clause
    • [IOTDB-1372] delete devices field in FileTimeIndex
    • [IOTDB-1531] Check tsfile creation time when recovering
    • [IOTDB-1541] Change sequence of wal and memtable in insertion
    • [IOTDB-1923] Separate the request unpacking and execution processing logic of TSServiceImpl
    • [IOTDB-1969] Remove statistic resources of old metric framework from iotdb-server
    • [IOTDB-2014] MicrometerPrometheusReporter#getReporterType return null
    • [IOTDB-2043] refactor: remove haveSorted param from Session
    • [IOTDB-2154] add TsFileUtils.isTsFileComplete
    • [IOTDB-2206] Rename StorageGroupProcessor to VirtualStorageGroupProcessor
    • [IOTDB-2208] Reconstruct the process of generating resultset header of query
    • [ISSUE-4047] Generic type in Statistics extend Serializable
    • Add compaction version in cache key
    • Add a constructor of IoTDBDescriptorHolder to prohibit instantiation

    Bug Fixes

    • [IOTDB-1266] Fix SHOW TIMESERIES will only display 2000 timeseries
    • [IOTDB-1478] The whole IoTDB can not read/write if any one sg is not ready
    • [IOTDB-1562] Fix incorrect exception processing in insertXXX() API
    • [IOTDB-1583] Raft log failed to be committed in cluster version
    • [IOTDB-1592] BugFix: SLimit Not effective in align by device
    • [IOTDB-1736] Fix error code is not printed in TSServiceImpl's log
    • [IOTDB-1749] sync-tool's lockInstance() dose not take effect
    • [IOTDB-1758] sync-tool, empty uuid file cause tool can not auto-recovery
    • [IOTDB-1848] Failed to initialize pool: Does not support setReadOnly in grafana-connector
    • [IOTDB-1853] Fix bug about more than one TimeseriesMetadata in TsFile
    • [IOTDB-2010] fix incomplete show timeseries result
    • [IOTDB-2021] Fix Bloom Filter Cache doesn't take effect bug
    • [IOTDB-2060] Fix NPE when using fill without a filter
    • [IOTDB-2074] Fix NullPointerException when recovering compaction in MacOS
    • [IOTDB-2077] Unexpected exception when executing raw data query without VF with limit clause
    • [IOTDB-2088] Fix IndexOutOfBound exception in AggregationPlan.groupAggResultByLevel
    • [IOTDB-2116] Fix all client connections are stuck bug caused by logback bug
    • [IOTDB-2129] Wrong result returned when querying by nested expressions with aliases
    • [IOTDB-2143] fix wrong precision in cluster mode
    • [IOTDB-2153] [IOTDB-2157] fix incorrect path search space
    • [IOTDB-2159] Fix wrong status code when inserting data to a read-only cluster
    • [IOTDB-2163] Fix unexpected amount of columns in a cluster slimit query
    • [IOTDB-2174] Fix Regexp filter serializing and deserializing error
    • [IOTDB-2180] Fix show latest timeseries in cluster
    • [IOTDB-2183] Fix the config problems in cluster mode
    • [IOTDB-2185] Fix get an exception when parsing the header of CSV
    • [IOTDB-2209] Fix logback CVE-2021-42550 issue
    • [IOTDB-2251] [IOTDB-2252] Fix Query deadlock
    • [IOTDB-2267] UDF: Error code 500 caused by user logic
    • [IOTDB-2282] fix tag recovery bug after tag upsert
    • [IOTDB-2290] Fix Incorrect query result in C++ client
    • [IOTDB-2520] Fix list user privilege root returns empty
    • [IOTDB-2544] Fix tag info sync error during metadata sync
    • [IOTDB-2550] Avoid show timeseries error after alter tag on sync sender
    • [IOTDB-2654] Fix Alias doesn't show when using group by level
    • Fix CPP client could not be successfully built on windows
    • Fix dead lock in setDataTTL method
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.13.0-all-bin.zip(64.38 MB)
    apache-iotdb-0.13.0-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-cli-bin.zip(11.67 MB)
    apache-iotdb-0.13.0-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-client-cpp-mac-x86_64-bin.zip(808.88 KB)
    apache-iotdb-0.13.0-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-cluster-bin.zip(42.10 MB)
    apache-iotdb-0.13.0-cluster-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-cluster-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-grafana-connector-bin.zip(20.67 MB)
    apache-iotdb-0.13.0-grafana-connector-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-grafana-connector-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-grafana-plugin-bin.zip(144.89 KB)
    apache-iotdb-0.13.0-grafana-plugin-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-grafana-plugin-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-server-bin.zip(41.37 MB)
    apache-iotdb-0.13.0-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.13.0-server-bin.zip.sha512(128 bytes)
    apache-iotdb-0.13.0-source-release.zip(10.01 MB)
    apache-iotdb-0.13.0-source-release.zip.asc(833 bytes)
    apache-iotdb-0.13.0-source-release.zip.sha512(128 bytes)
    README.md(17.89 KB)
    README_ZH.md(16.89 KB)
    RELEASE_NOTES.md(61.56 KB)
  • v0.12.5(Mar 8, 2022)

    New Features

    • [IOTDB-2078] Split large TsFile tool
    • [IOTDB-2192] Support extreme function

    Improvements

    • [IOTDB-1297] Refactor the memory control when enabling time partitions
    • [IOTDB-2195] Control the concurrent query execution thread
    • [IOTDB-2475] Remove sg not ready log in batch process
    • [IOTDB-2502] Add query sql in error log if encountering exception
    • [IOTDB-2506] Refine the lock granularity of the aggregation query
    • [IOTDB-2534] add character support while using double quote
    • [IOTDB-2562] Change default value of sync mlog period parameter
    • Avoid too many warning logs being printed, when opening too many file handlers

    Bug Fixes

    • [IOTDB-1960] Fix count timeseries bug in cluster mode
    • [IOTDB-2174] Fix Regexp filter serializing and deserializing error
    • [IoTDB-2185] fix get an exception bug when parsing the header of CSV
    • [IOTDB-2194] Fix SHOW TIMESERIES will only display 2000 timeseries in cluster mode
    • [IOTDB-2197] Fix datatype conversion exception in Spark Connector
    • [IOTDB-2209] Fix logback CVE-2021-42550 issue
    • [IOTDB-2219] Fix query in-memory data is incorrect in cluster mode
    • [IOTDB-2222] Fix OOM and data was written in incorrectly bugs of Spark Connector
    • [IOTDB-2251] [IOTDB-2252] Fix Query deadlock
    • [IOTDB-2282] fix tag recover bug after tag update
    • [IOTDB-2320] MemoryLeak cause by wal Scheduled trim task thread
    • [IOTDB-2381] Fix deadlock caused by incorrect buffer pool size counter
    • [IOTDB-2400] Fix series reader bug
    • [IOTDB-2426] WAL deadlock caused by too many open files
    • [IOTDB-2445] Fix overlapped data should be consumed first bug
    • [IOTDB-2499] Fix division by zero error when recovering merge
    • [IOTDB-2507] Fix NPE when merge recover
    • [IOTDB-2528] Fix MLog corruption and recovery bug after killing system
    • [IOTDB-2532] Fix query with align by device can't get value after clear cache
    • [IOTDB-2533] Fix change max_deduplicated_path_num does not take effect
    • [IOTDB-2544] Fix tag info sync error during metadata sync
    • [IOTDB-2550] Avoid show timeseries error after alter tag on sync sender
    • [IOTDB-2567] Fix thread and ByteBuffer leak after service stopped
    • [IOTDB-2568] "show query processlist" is blocked
    • [IOTDB-2580] Fix DirectByteBuffer and thread leak when deleting storage group
    • [IOTDB-2584] Fix cross space compaction selector
    • [IOTDB-2603] Fix compaction recover
    • [IOTDB-2604] Fix batch size is invalid in import-csv tool
    • [IOTDB-2620] Unrecognizable operator type (SHOW) for AuthorityChecker
    • [IOTDB-2624] Fix "overlapped data should be consumed first" occurs when executing query
    • [IOTDB-2640] Fix cross compaction recover bug
    • [IOTDB-2641] Fix time range of TsFile resource overlaps after unseq compaction
    • [IOTDB-2642] Fix the new file has a higher compact priority than the old file in unseq compaction
    • Fix a logical bug in processPlanLocally in cluster mode
    • Throw Exception while using last query with align by device
    • Add a judgement to determine raft log size can fit into buffer before log appending in cluster mode
    • Fix grafana can't be used bug
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.12.5-all-bin.zip(47.08 MB)
    apache-iotdb-0.12.5-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-cli-bin.zip(9.54 MB)
    apache-iotdb-0.12.5-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-client-cpp-mac-x86_64-bin.zip(702.61 KB)
    apache-iotdb-0.12.5-client-cpp-mac-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-client-cpp-mac-x86_64-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-cluster-bin.zip(26.51 MB)
    apache-iotdb-0.12.5-cluster-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-cluster-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-grafana-bin.zip(20.02 MB)
    apache-iotdb-0.12.5-grafana-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-grafana-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-server-bin.zip(25.05 MB)
    apache-iotdb-0.12.5-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.5-server-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.5-source-release.zip(6.92 MB)
    apache-iotdb-0.12.5-source-release.zip.asc(833 bytes)
    apache-iotdb-0.12.5-source-release.zip.sha512(128 bytes)
    README.md(16.71 KB)
    README_ZH.md(15.57 KB)
    RELEASE_NOTES.md(53.95 KB)
  • v0.12.4(Dec 25, 2021)

    New Features

    • [IOTDB-1823] group by multi level

    Improvements

    • [IOTDB-2027] Rollback invalid entry after WAL writing failure
    • [IOTDB-2061] Add max concurrent sub query parameter, read data in batches to limit max IO and add max cached buffer size configuration
    • [IOTDB-2065] release TsFileSequenceReader soon when it is no longer used
    • [IOTDB-2072] Remove TVListAllocator to reduce the TVList mem cost
    • [IOTDB-2101] Reduce the memory footprint of QueryDataSource
    • [IOTDB-2102] Push limit operator down to each reader
    • [IOTDB-2123] Accelerate recovery process
    • update user guide for cpp-cpi and disable compiling nodejs in cpp-cli
    • Ignore too many WAL BufferOverflow log

    Bug Fixes

    • [IOTDB-1408] Statement with 'as' executes incorrectly in mutil-path scenes
    • [IOTDB-2023] Fix serializing and deserializing bugs of Filters
    • [IOTDB-2025] Fix count nodes and devices incorrectly in cluster
    • [IOTDB-2031] Fix incorrect result of descending query with value filter in cluster
    • [IOTDB-2032] Fix incorrect result of descending query with multiple time partitions
    • [IOTDB-2039] Fix data redundant after too many open files exception occurs during compaction
    • [IOTDB-2047] Fix NPE when memControl is disabled and insert TEXT value to a non-TEXT series
    • [IOTDB-2058] Fix Query is blocked without sub-query-threads exist bug
    • [IOTDB-2063] Fix MinTimeDescAggregationResult implementation bug
    • [IOTDB-2064] Fix the NPE caused by map serde
    • [IOTDB-2068] Fix GZIP compressor meets ArrayIndexOutOfBoundsException
    • [IOTDB-2124] the filtering condition does not take efffect for last query in cluster
    • [IOTDB-2138] Fix data loss after IoTDB recover
    • [IOTDB-2140] Fix merge throw NullPointerException
    • [IOTDB-2152] PyClient: Override __eq__() of TSDataType, TSEncoding and Compressor to avoid unexpected comparation behaviour
    • [IOTDB-2160] Fix cluster groupby query cross-node reference leaks
    • [ISSUE-3335] Fix the bug of start-cli.sh -e mode can't work with wild card *
    • fix memory leak: replace RandomDeleteCache with Caffine CacheLoader
    • Fix connection refused using session when users forget to set client ip
    Source code(tar.gz)
    Source code(zip)
  • v0.12.3(Nov 18, 2021)

    Improvements

    • [IOTDB-842] Better Export/Import-CSV Tool
    • [IOTDB-1738] Cache paths list in batched insert plan
    • [IOTDB-1792] remove tomcat-embed dependency and make all transitive dependencies versions consistent
    • [ISSUE-4072] Parallel insert records in Session
    • Print the file path while meeting error in case of reading chunk

    Bug Fixes

    • [IOTDB-1275] Fix backgroup exec for cli -e function causes an infinite loop
    • [IOTDB-1287] Fix C++ class Session has 2 useless sort()
    • [IOTDB-1289] fix CPP mem-leak in SessionExample.cpp insertRecords()
    • [IOTDB-1484] fix auto create schema in cluster
    • [IOTDB-1578] Set unsequnce when loading TsFile with the same establish time
    • [IOTDB-1619] Fix an error msg when restart iotdb-cluster
    • [IOTDB-1629] fix the NPE when using value fill in cluster mode
    • [IOTDB-1632] Fix Value fill function fills even when the data exists
    • [IOTDB-1651] add reconnect to solve out of sequence in sync module
    • [IOTDB-1659] Fix Windows CLI cannot set maxPRC less than or equal to 0
    • [IOTDB-1670] Fix cli -e mode didn't fetch timestamp_precision from server
    • [IOTDB-1674] Fix command interpret error causing somaxconn warning failed
    • [IOTDB-1677] Fix not generate file apache-iotdb-0.x.x-client-cpp-linux-x86_64-bin.zip.sha512
    • [IOTDB-1678] Fix client-cpp session bug: can cause connection leak.
    • [IOTDB-1679] client-cpp: Session descontruction need release server resource
    • [IOTDB-1690] Fix align by device type cast error
    • [IOTDB-1693] fix IoTDB restart does not truncate broken ChunkGroup bug
    • [IOTDB-1703] Fix MManager slow recover with tag
    • [IOTDB-1714] fix Could not find or load main class when start with jmx on win
    • [IOTDB-1723] Fix concurrency issue in compaction selection
    • [IOTDB-1726] Wrong hashCode() and equals() method in ChunkMetadata
    • [IOTDB-1727] Fix Slow creation of timeseries with tag
    • [IOTDB-1731] Fix sync error between different os
    • [IOTDB-1733] Fix dropping built-in function
    • [IOTDB-1741] Avoid double close in level compaction execution
    • [IOTDB-1785] Fix Illegal String ending with . being parsed to PartialPath
    • [IOTDB-1836] Fix Query Exception Bug after deleting all sgs
    • [IOTDB-1837] Fix tagIndex rebuild failure after upgrade mlog from mlog.txt to mlog.bin
    • [IOTDB-1838] The compacting status in SGP is always false
    • [IOTDB-1846] Fix the error when count the total number of devices in cluster mode
    • [IoTDB-1847] Not throw excpetion when pulling non--existent time series
    • [IOTDB-1850] Fix deserialize page merge rate limiter
    • [IoTDB-1865] Compaction is blocking when removing old files in Cluster
    • [IOTDB-1868] Use RwLock to reduce the lock time for nodeRing
    • [IOTDB-1872] Fix data increases abnormally after IoTDB restarts
    • [IOTDB-1877] Fix Sync recovery and reconnection bugs in both sender and receiver
    • [IOTDB-1879] Fix some Unsequence files never be merged to higher level or Sequence folder
    • [IOTDB-1887] Fix importing csv data containing null throws exception
    • [IOTDB-1893] Fix Can not release file lock in sync verify singleton
    • [IOTDB-1895] Cache leader optimization for batch write interfaces on multiple devices
    • [IOTDB-1903] Fix IndexOutOfRangeException when starting IoTDB
    • [IoTDB-1913] Fix When exporting a amount of data from csv, it will report network error or OOM
    • [IOTDB-1925] Fix the modification of max_select_unseq_file_num_in_each_compaction parameter does not take effect
    • [IOTDB-1958] Add storage group not ready exception
    • [IOTDB-1961] Cluster query memory leak
    • [IOTDB-1975] OOM caused by that MaxQueryDeduplicatedPathNum doesn't take effect
    • [IOTDB-1983] Fix DescReadWriteBatchData serializing bug
    • [IOTDB-1990] Fix unchecked null result by calling IReaderByTimestamp.getValuesInTimestamps()
    • [ISSUE-3945] Fix Fuzzy query not support multiDevices and alignByDevice Dataset
    • [ISSUE-4288] Fix CI issue caused by the invalid pentaho download url
    • [ISSUE-4293] SessionPool: InterruptedException is not properly handled in synchronized wait()
    • [ISSUE-4308] READ_TIMESERIES privilege granted to users and roles can not take effect when quering by UDFs
    • fix merge ClassCastException: MeasurementMNode
    • change sync version check to major version
    • init dummyIndex after restart cluster
    Source code(tar.gz)
    Source code(zip)
  • v0.12.2(Sep 13, 2021)

    New Features

    • [IOTDB-959] Add create storage group Grammar
    • [IOTDB-1399] Add a session interface to connect multiple nodes
    • [IOTDB-1466] Support device template
    • [IOTDB-1491] UDTF query supported in cluster
    • [IOTDB-1496] Timed flush memtable
    • [IOTDB-1536] Support fuzzy query REGEXP
    • [IOTDB-1561] Support fill by specific value
    • [IOTDB-1565] Add sql: set system to readonly/writable
    • [IOTDB-1569] Timed close TsFileProcessor
    • [IOTDB-1586] Support mysql-style Like clause
    • [ISSUE-3811] Provide a data type column for the last query dataset
    • TTL can be set to the prefix path of storage group
    • add JMX monitor to all ThreadPools in the server module

    Improvements

    • [IOTDB-1566] Do not restrict concurrent write partitions
    • [IOTDB-1585] ModificationFile‘s write interface blocking
    • [IOTDB-1587] SessionPool optimization: a more aggressive Session creation strategy
    • Use StringCachedPool in TsFileResource to reduce the memory size
    • write performance optimization when replicaNum == 1
    • Optimize Primitive Array Manager
    • Function Improvement: add overlapped page rate in Tracing

    Bug Fixes

    • [IOTDB-1282] fix C++ class SessionDataSet mem-leak
    • [IOTDB-1407] fix Filtering time series based on tags query fails Occasionally
    • [IOTDB-1437] Fix the TsFileSketchTool NPE
    • [IOTDB-1442] Time filter & TTL do not take effect in cluster
    • [IOTDB-1452] remove compaction log/ change logger to daily
    • [IOTDB-1447] ClientPool is blocking other nodes when one node fails
    • [IOTDB-1456] Fix Error occurred while executing delete timeseries statement
    • [IOTDB-1461] Fix compaction conflicts with ttl
    • [IOTDB-1462] Fix cross space compaction recover null pointer bug
    • [IOTDB-1464] fix take byte array null pointer
    • [IOTDB-1469] fix cross space compaction lost data bug
    • [IOTDB-1471] Fix path not right in "sg may not ready" log
    • [IOTDB-1475] MeasurementId check while create timeseries or template/ disable time or timestamp in timeseries path
    • [IOTDB-1488] Fix metaMember's forwarding clientPool timeout in cluster module
    • [IOTDB-1494] fix compaction block flush bug
    • [IoTDB-1499] Remove series registration using IoTDBSink
    • [IoTDB-1501] Fix compaction recover delete tsfile bug
    • [IOTDB-1529] Fix mlog recover idx bug and synchronize setStorageGroup
    • [IOTDB-1537] fix insertTablet permission
    • [IOTDB-1539] Fix delete operation with value filter is abnormal
    • [IOTDB-1540] Bug Fix: 500 when using IN operator
    • [IOTDB-1541] Fix query result not right due to non-precise time index of resource
    • [IOTDB-1542] Cpp client segment fault: char[] buffer overflow caused by long exception message
    • [IOTDB-1545] Query dataset memory leak on server caused by cpp client
    • [IOTDB-1546] Optimize the Upgrade Tool rewrite logic to reduce the temp memory cost
    • [IOTDB-1552] Only allow equivalent filter for TEXT data type
    • [IOTDB-1556] Abort auto create device when meet exception in setStorageGroup
    • [IOTDB-1574] Deleted file handler leak
    • [IOTDB-1580] Error result of order by time desc when enable time partition
    • [IOTDB-1584] Doesn't support order by time desc in cluster mode
    • [IOTDB-1588] Bug fix: MAX_TIME is incorrect in cluster mode
    • [IOTDB-1594] Fix show timeseries returns incorrect tag value
    • [IOTDB-1600] Fix InsertRowsOfOneDevicePlan being not supported in cluster mode
    • [IOTDB-1610] Fix TsFileRewriteTool writing incorrect data file
    • [ISSUE-3116] Bug when using natural month unit in time interval in group by query
    • [ISSUE-3316] Query result with the same time range is inconsistent in group by query
    • [ISSUE-3436] Fix query result not right after deleting multiple time interval of one timeseries
    • [ISSUE-3458] fix load configuration does not take effect
    • [ISSUE-3545] Fix Time interval value is disorder in group by month
    • [ISSUE-3653] fix Max_time and last return inconsistent result
    • [ISSUE-3690] Memory leaks on the server when cpp client invokes checkTimeseriesExists
    • [ISSUE-3805] OOM caused by Chunk cache
    • [ISSUE-3865] Meaningless connection reset issues caused by low default value for SOMAXCONN
    • Fix DataMigrationExample OOM if migrate too many timeseries
    • Handle false positive cases which may cause NPE of tsfile bloom filter
    • Fix Windows shell error on JDK11 & fix iotdb-env.bat not working
    • Fix cluster auto create schema bug when retry locally
    • Fix thrift out of sequence in cluster module
    • Skip non exist measurement in where clause in align by device
    • fix blocking query when selecting TsFile in compaction
    • Fix redundant data in compaction recover
    • Fix load tsfile with time partition enable

    Incompatible changes

    • [IOTDB-1485] Replace tsfile_size_threshold by unseq_tsfile_size/seq_tsfile_size

    Miscellaneous changes

    • [IOTDB-1499] Remove unused exception throwing notation in IoTDBSink
    • [IOTDB-1500] Remove current dynamic query memory control
    • [ISSUE-3674] Disable thrift code generation for Javascript
    • enable cacheLeader by default
    • add audit log when execute delete and set sg for tracing
    • modify nodeTool user to root
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.12.2-all-bin.zip(49.44 MB)
    apache-iotdb-0.12.2-all-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-all-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.2-cli-bin.zip(12.34 MB)
    apache-iotdb-0.12.2-cli-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-cli-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.2-client-cpp-linux-x86_64-bin.zip(1.28 MB)
    apache-iotdb-0.12.2-client-cpp-linux-x86_64-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-cluster-bin.zip(28.81 MB)
    apache-iotdb-0.12.2-cluster-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-cluster-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.2-grafana-bin.zip(20.08 MB)
    apache-iotdb-0.12.2-grafana-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-grafana-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.2-server-bin.zip(27.38 MB)
    apache-iotdb-0.12.2-server-bin.zip.asc(833 bytes)
    apache-iotdb-0.12.2-server-bin.zip.sha512(128 bytes)
    apache-iotdb-0.12.2-source-release.zip(6.84 MB)
    apache-iotdb-0.12.2-source-release.zip.asc(833 bytes)
    apache-iotdb-0.12.2-source-release.zip.sha512(128 bytes)
    README.md(16.71 KB)
    README_ZH.md(15.57 KB)
    RELEASE_NOTES.md(44.69 KB)
  • v0.12.1(Jun 18, 2021)

    Bug Fixes

    • [GITHUB-3373] Remove the broken cached leader connection & optimize the insertRecords method in session
    • [IOTDB-1433] Fix bug in getMetadataAndEndOffset when querying non-exist device
    • [IOTDB-1432] fix level compaction loss data
    • [IOTDB-1427] Fix compaction lock with query
    • [IOTDB-1420] Fix compaction ttl bug
    • [IOTDB-1419] Remove redundant clearCompactionStatus, fix continuous compaction doesn't take effect when enablePartition
    • [IOTDB-1415] Fix OOM caused by ChunkCache
    • [IOTDB-1414] NPE occurred when call getStorageGroupNodeByPath() method using not exist path
    • [IOTDB-1412] Unclear exception message thrown when executing empty InsertTabletPlan
    • [IOTDB-1411] Fix thriftMaxFrameSize and thriftDefaultBufferSize does not in effect
    • [IOTDB-1398] Do not select unseq files when there are uncompacted old unseq files
    • [IOTDB-1390] Fix unseq compaction loss data bug
    • [IOTDB-1384] Fix group by bug
    • [ISSUE-3378] Fix NPE when clear upgrade folder; Fix some upgraded pageHeader missing statistics
    • [GITHUB-3339] Try to fix sg dead lock
    • [GITHUB-3329] Fix upgrade NPE and DeadLock
    • [GITHUB-3319] Fix upgrade tool cannot close file reader
    • [IOTDB-1212] Fix The given error message is not right when executing select sin(non_existence) from root.sg1.d1
    • [IOTDB-1219] Fix a potential NPE issue in UDF module
    • [IOTDB-1286] Fix 4 C++ mem-leak points
    • [IOTDB-1294] Fix delete operation become invalid after compaction
    • [IOTDB-1313] Fix lossing time precision when import csv with unsupported timestamp format
    • [IOTDB-1316] The importCsv tool should continue inserting if a part of insertion failed
    • [IOTDB-1317] Fix log CatchUp always failed due to not check the follower's match index
    • [IOTDB-1323] Fix return a success message when encounter RuntimeException during the insertion process
    • [IOTDB-1325] Fix StackOverflow Exception in group by natural month query
    • [IOTDB-1330] Fix the load tsfile bug when the cross multi partition's tsfile only have one page
    • [IOTDB-1348] Fix Last plan not work in cluster mode
    • [IOTDB-1376] Fix BatchProcessException was not correctly handled in BaseApplier
    • [ISSUE-3277] Fix TotalSeriesNumber in MManager counted twice when recovering
    • [ISSUE-3116] Fix bug when using natural month unit in time interval in group by query
    • [ISSUE-3309] Fix InsertRecordsOfOneDevice runs too slow
    • Fix the plan index is always zero when using insertRecords interface to run the cluster
    • Add authority check for users create timeseries using executeBatch interface without the privilege
    • Fix versionInfo NPE when query upgrading 0.11 tsfile
    • Fix upgrade tool cannot load old tsfile if time partition enabled in 0.11
    • Fix import csv throw ArrayOutOfIndexError when the last value in a line is null
    • Fix upgrade tool cannot close file reader

    Improvements

    • [GITHUB-3399] Change the default primitive array size to 32
    • [IOTDB-1387] Support Without Null ALL in align by device clause, Filter RowRecord automatically if any column in it is null or all columns are null
    • [IOTDB-1385] Extract the super user to the configuration
    • [IOTDB-1315] ExportCsvTool should support timestamp yyyy-MM-dd'T'HH:mm:ss.SSSZ
    • [IOTDB-1339] optimize TimeoutChangeableTSnappyFramedTransport
    • [IOTDB-1356] Separate unseq_file_num_in_each_level from selecting candidate file in unseq compaction
    • [IOTDB-1357] Compaction use append chunk merge strategy when chunk is already large enough
    • [IOTDB-1380] Automatically close the dataset while there is no more data
    • Optimize sync leader for meta

    New Features

    • [GITHUB-3389] TTL can be set to any path
    • [GITHUB-3387] Add parameter compaction_interval=10000ms
    • [IOTDB-1190] Fully support HTTP URL char set in timeseries path
    • [IOTDB-1321][IOTDB-1322] Filter RowRecord automatically if any column in it is null or all columns are null
    • [IOTDB-1357] Compaction use append chunk merge strategy when chunk is already large
    • [ISSUE-3089] Make it possible for storage groups to have name with hyphen

    Miscellaneous changes

    • [GITHUB-3346] upgrade netty and claim exclusion for enforcer check
    • [IOTDB-1259] upgrade libthrift from 0.12.0/0.13.0 to 0.14.1
    • Uncomment the less used configurations
    • Enable the configration concurrent_writing_time_partition
    Source code(tar.gz)
    Source code(zip)
  • v0.11.4(Jun 21, 2021)

    Bug Fixes

    • IOTDB-1303 Disable group by without aggregation function in select clause
    • IOTDB-1306 Fix insertion blocked caused the deadlock in memory control module
    • IOTDB-1308 Fix users with READ_TIMESERIES permission cannot execute group by fill queries
    • IOTDB-1344 Fix cannot create timeseries caused by the timeseries count doesn't reset when deleting storage group
    • IOTDB-1384 Some value will disappear while using group by query
    • IOTDB-1398 Do not select unseq files when there are uncompacted old unseq files
    • ISSUE-3316 Fix query result with the same time range is inconsistent in group by query
    • Fix TotalSeriesNumber in MManager counted twice when recovering
    • Fix unseq compaction throws a wrong exception if some paths are not in the file
    • Fix overlapped data should be consumed first exception when query

    Improvements

    • [IOTDB-1356] Separate unseq_file_num_in_each_level from selecting candidate file in unseq compaction
    • [IOTDB-1412] Unclear exception message thrown when executing empty InsertTabletPlan
    • continuous compaction in level compaction strategy when no tsfile is to be closed

    New Features

    • support brackets with number in timeseries path
    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Apr 13, 2021)

    New Features

    • [IOTDB-68] New shared-nothing cluster
    • [IOTDB-507] Add zeppelin-interpreter module
    • [IOTDB-825] Aggregation by natural month
    • [IOTDB-890] support SDT lossy compression
    • [IOTDB-944] Support UDTF (User-defined Timeseries Generating Function)
    • [IOTDB-965] Add timeout parameter for query
    • [IOTDB-1077] Add insertOneDeviceRecords API in java session
    • [IOTDB-1055] Support data compression type GZIP
    • [IOTDB-1024] Support multiple aggregated measurements for group by level statement
    • [IOTDB-1276] Add explain sql support and remove debug_state parameter
    • [IOTDB-1197] Add iotdb-client-go as a git submodule of IoTDB repo
    • [IOTDB-1230] Support spans multi time partitions when loading one TsFile
    • [IOTDB-1273] Feature/restrucutre python module as well as supporting pandas dataframe
    • [IOTDB-1277] support IoTDB as Flink's data source
    • [PR-2605] Add level merge to "merge" command

    Incompatible changes

    • [IOTDB-1081] New TsFile Format
    • [ISSUE-2730] Add the number of unseq merge times in TsFile name.

    Miscellaneous changes

    • [IOTDB-868] Change mlog from txt to bin
    • [IOTDB-1069] Restrict the flushing memtable number to avoid OOM when mem_control is disabled
    • [IOTDB-1104] Refactor the error handling process of query exceptions
    • [IOTDB-1108] Add error log to print file name while error happened
    • [IOTDB-1152] Optimize regular data size in traversing
    • [IOTDB-1180] Reset the system log file names and maximal disk-space size
    • [ISSUE-2515] Set fetchsize through JDBC and Session
    • [ISSUE-2598] Throw explicit exception when time series is unknown in where clause
    • [PR-2944] Throw exception when device to be queried is not in TsFileMetaData
    • [PR-2967] Log memory usage information in SystemInfo for better diagnosis

    Bug Fixes

    • [IOTDB-1049] Fix NullpointerException and a delete bug in Last query
    • [IOTDB-1050] Fix Count timeserise column name is wrong
    • [IOTDB-1068] Fix Time series metadata cache bug
    • [IOTDB-1084] Fix temporary memory of flushing may cause OOM
    • [IOTDB-1106] Fix delete timeseries bug
    • [IOTDB-1126] Fix the unseq tsfile delete due to merge
    • [IOTDB-1135] Fix the count timeseries prefix path bug
    • [IOTDB-1137] Fix MNode.getLeafCount error when existing sub-device
    • [ISSUE-2484] Fix creating timeseries error by using "create" or "insert" statement
    • [ISSUE-2545, 2549] Fix unseq merge end time bug
    • [ISSUE-2611] An unsequence file that covers too many sequence file causes OOM query
    • [ISSUE-2688] LRULinkedHashMap does not work as an LRU Cache
    • [ISSUE-2709, 1178] Fix cache not cleared after unseq compaction bug, Fix windows 70,10 ci bug in unseq compaction ci
    • [ISSUE-2741] getObject method in JDBC should return an Object
    • [ISSUE-2746] Fix data overlapped bug after unseq compaction
    • [ISSUE-2758] NullPointerException in QueryTimeManager.checkQueryAlive()
    • [ISSUE-2905] Fix Files.deleteIfExists() doesn't work for HDFS file
    • [ISSUE-2919] Fix C++ client memory leak bug
    • [PR-2613] Fix importCSVTool import directory bug & encode bug
    • [PR-2409] Fix import csv which can't import time format str
    • [PR-2582] Fix sync bug for tsfiles's directory changed by vitural storage group
    • [ISSUE-2911] Fix The write stream is not closed when executing the command 'tracing off'
    Source code(tar.gz)
    Source code(zip)
  • v0.11.3(Apr 13, 2021)

    Bug Fixes

    • ISSUE-2505 ignore PathNotExistException in recover and change recover error to warn
    • IOTDB-1119 Fix C++ SessionDataSet bug when reading value buffer
    • Fix SessionPool does not recycle session and can not offer new Session due to RunTimeException
    • ISSUE-2588 Fix dead lock between deleting data and querying in parallel
    • ISSUE-2546 Fix first chunkmetadata should be consumed first
    • IOTDB-1126 Fix unseq tsfile is deleted due to compaction
    • IOTDB-1137 MNode.getLeafCount error when existing sub-device
    • ISSUE-2624 ISSUE-2625 Avoid OOM if user don't close Statement and Session manually
    • ISSUE-2639 Fix possible NPE during end query process
    • Alter IT for An error is reported and the system is suspended occasionally
    • IOTDB-1149 print error for -e param when set maxPRC<=0
    • IOTDB-1247 Fix the insert blocked caused the bugs in mem control module
    • ISSUE-2648 Last query not right when having multiple devices
    • Delete mods files after compaction
    • ISSUE-2687 fix insert NaN bug
    • ISSUE-2598 Throw explicit exception when time series is unknown in where clause
    • Fix timeseriesMetadata cache is not cleared after the TsFile is deleted by a compaction
    • ISSUE-2611 An unsequence file that covers too many sequence file causes OOM query
    • IOTDB-1135 Fix count timeseries bug when the paths are nested
    • ISSUE-2709 IOTDB-1178 Fix cache is not cleared after compaction
    • ISSUE-2746 Fix data overlapped bug after the elimination unseq compaction process
    • Fix getObject method in JDBC should return an Object
    • IOTDB-1188 Fix IoTDB 0.11 unable to delete data bug
    • Fix when covering a tsfile resource with HistoricalVersion = null, it’ll throw a NPE
    • fix the elimination unseq compaction may loss data bug after a delete operation is executed
    • Fix a bug of checking time partition in DeviceTimeIndex
    • Throw exeception when device to be queried is not in tsFileMetaData
    • Fix unseq compaction file selector conflicts with time partition bug
    • Fix high CPU usage during the compaction process

    Improvements

    • IOTDB-1140 optimize regular data encoding
    • Add more log for better tracing
    • Add backgroup exec for cli -e function
    • Add max direct memory size parameter to env.sh
    • Change last cache log to debug level

    New Features

    • Add explain sql support
    Source code(tar.gz)
    Source code(zip)
  • release/0.11.2(Jan 22, 2021)

    Bugfix list:

    • IOTDB-1049 Fix Nullpointer exception and a delete bug in Last query
    • IOTDB-1060 Support full deletion for delete statement without where clause
    • IOTDB-1068 Fix Time series metadata cache bug
    • IOTDB-1069 restrict the flushing memtable number to avoid OOM when mem_control is disabled
    • IOTDB-1077 add insertOneDeviceRecords API in java session
    • IOTDB-1087 fix compaction block flush: flush do not return until compaction finished
    • IOTDB-1106 Delete timeseries statement will incorrectly delete other timeseries
    • Github issue-2137 fix grafana value-time position bug
    • Github issue-2169 GetObject returns String for all data types
    • Github issue-2240 fix Sync failed: Socket is closed by peer
    • Github issue-2387 The deleteData method exists in Session but not in SessionPool.
    • add thrift_max_frame_size in iotdb-engine.properties
    • Fix incorrect last result after deleting all data
    • Fix compaction recover block restart: IoTDB cannot restart until last compaction recover task finished
    • Fix compaction ignore modification file: delete does not work after compaction
    • print more insert error message in client
    • expose enablePartition parameter into iotdb-engines.properpties
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.11.2-bin.zip(46.00 MB)
    apache-iotdb-0.11.2-bin.zip.asc(833 bytes)
    apache-iotdb-0.11.2-bin.zip.sha512(128 bytes)
  • release/0.11.1(Dec 11, 2020)

    Apache IoTDB 0.11.1

    Bug Fixes

    • IOTDB-990 cli parameter maxPRC shouldn't to be set zero
    • IOTDB-993 Fix tlog bug
    • IOTDB-994 Fix can not get last_value while doing the aggregation query along with first_value
    • IOTDB-1000 Fix read redundant data while select with value filter with unseq data
    • IOTDB-1007 Fix session pool concurrency and leakage issue when pool.close is called
    • IOTDB-1016 overlapped data should be consumed first
    • IOTDB-1021 Fix NullPointerException when showing child paths of non-existent path
    • IOTDB-1028 add MAX_POINT_NUMBER format check
    • IOTDB-1034 Fix Show timeseries error in Chinese on Windows
    • IOTDB-1035 Fix bug in getDeviceTimeseriesMetadata when querying non-exist device
    • IOTDB-1038 Fix flink set storage group bug
    • ISSUE-2179 fix insert partial tablet with binary NullPointer bug
    • add reject status code
    • Update compaction level list delete
    • Fix query result is not correct
    • Fix import errors in Session.py and SessionExample.py
    • Fix modules can not be found when using pypi to pack client-py
    • Fix Count timeseries group by level bug
    • Fix desc batchdata count bug
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.11.1-bin.zip(57.74 MB)
    apache-iotdb-0.11.1-bin.zip.asc(833 bytes)
    apache-iotdb-0.11.1-bin.zip.sha512(128 bytes)
    apache-iotdb-0.11.1-source-release.zip(6.18 MB)
    apache-iotdb-0.11.1-source-release.zip.asc(833 bytes)
    apache-iotdb-0.11.1-source-release.zip.sha512(128 bytes)
  • release/0.10.1(Aug 22, 2020)

    Changelog:

    Apache IoTDB (incubating) 0.10.1

    • [IOTDB-797] InsertTablet deserialization from WAL error
    • [IOTDB-788] Can not upgrade all storage groups
    • [IOTDB-792] deadlock when insert while show latest timeseries
    • [IOTDB-794] Rename file or delete file Error in start check in Windows
    • [IOTDB-795] BufferUnderflowException in Hive-connector
    • [IOTDB-766] Do not release unclosed file reader, a small memory leak
    • [IOTDB-796] Concurrent Query throughput is low
    • Query result is not correct when some unsequence data exists
    • Change the default fetch size to 10000 in session
    • [IOTDB-798] fix a set rowLimit and rowOffset bug
    • [IOTDB-800] Add a new config type for those parameters which could not be modified any more after the first start
    • [IOTDB-802] Improve "group by" query performance
    • [IOTDB-799] remove log visualizer tool from v0.10
    • fix license-binary
    • [IOTDB-805] Fix BufferUnderflowException when querying TsFile stored in HDFS
    • python session client ver-0.10.0
    • [IOTDB-808] fix bug in selfCheck() truncate
    • fix doc of MeasurementSchema in Tablet
    • [IOTDB-811] fix upgrading mlog many times when upgrading system.properties crashed
    • Improve IoTDB restart process
    • remove jol-core dependency which is introduced by hive-serde 2.8.4
    • remove org.json dependency because of license compatibility
    • [ISSUE-1551] fix set historical version when loading additional tsfile
    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.10.1-incubating-bin.zip(58.18 MB)
    apache-iotdb-0.10.1-incubating-bin.zip.asc(833 bytes)
    apache-iotdb-0.10.1-incubating-bin.zip.sha512(128 bytes)
    apache-iotdb-0.10.1-incubating-source-release.zip(5.90 MB)
    apache-iotdb-0.10.1-incubating-source-release.zip.asc(833 bytes)
    apache-iotdb-0.10.1-incubating-source-release.zip.sha512(128 bytes)
    README.md(14.62 KB)
    README_ZH.md(13.75 KB)
    RELEASE_NOTES.md(23.50 KB)
  • release/0.10.0(Jun 28, 2020)

    If you are using v0.8, please upgrade to 0.9.3 first and then upgrade to 0.10.0 after the data is upgraded.

    Disclaimer: Apache IoTDB is an effort undergoing incubation at The Apache Software Foundation (ASF). Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

    Source code(tar.gz)
    Source code(zip)
    apache-iotdb-0.10.0-incubating-bin.zip(59.78 MB)
    apache-iotdb-0.10.0-incubating-bin.zip.asc(833 bytes)
    apache-iotdb-0.10.0-incubating-bin.zip.sha512(128 bytes)
  • release/0.9.3(May 14, 2020)

  • release/0.9.2(May 15, 2020)

  • release/0.9.1(Jan 10, 2020)

  • release/0.9.0(Dec 31, 2019)

  • release/0.8.1(Oct 14, 2019)

Owner
The Apache Software Foundation
The Apache Software Foundation
An open source SQL database designed to process time series data, faster

English | 简体中文 | العربية QuestDB QuestDB is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning

QuestDB 9.9k Jan 1, 2023
The Heroic Time Series Database

DEPRECATION NOTICE This repo is no longer actively maintained. While it should continue to work and there are no major known bugs, we will not be impr

Spotify 842 Dec 20, 2022
Fast scalable time series database

KairosDB is a fast distributed scalable time series database written on top of Cassandra. Documentation Documentation is found here. Frequently Asked

null 1.7k Dec 17, 2022
A scalable, distributed Time Series Database.

___ _____ ____ ____ ____ / _ \ _ __ ___ _ _|_ _/ ___|| _ \| __ ) | | | | '_ \ / _ \ '_ \| | \___ \| | | | _ \

OpenTSDB 4.8k Dec 26, 2022
Accumulo backed time series database

Timely is a time series database application that provides secure access to time series data. Timely is written in Java and designed to work with Apac

National Security Agency 367 Oct 11, 2022
Scalable Time Series Data Analytics

Time Series Data Analytics Working with time series is difficult due to the high dimensionality of the data, erroneous or extraneous data, and large d

Patrick Schäfer 286 Dec 7, 2022
A simple Database management system

总览 在开始 simpledb 旅途之前, 我们先从整体上来看看 SimpleDb 是一个 DBMS 数据库管理系统, 包含存储, 算子, 优化, 事务, 索引 等, 全方位介绍了如何从0实现一个 DBMS, 可以说, 这门课是学习 TIDB 等其他分布式数据库的前提.

null 66 Dec 28, 2022
Time series monitoring and alerting platform.

Argus Argus is a time-series monitoring and alerting platform. It consists of discrete services to configure alerts, ingest and transform metrics & ev

Salesforce 495 Dec 1, 2022
Time Series Metrics Engine based on Cassandra

Hawkular Metrics, a storage engine for metric data About Hawkular Metrics is the metric data storage engine part of Hawkular community. It relies on A

Hawkular 230 Dec 9, 2022
The Most Advanced Time Series Platform

Warp 10 Platform Introduction Warp 10 is an Open Source Geo Time Series Platform designed to handle data coming from sensors, monitoring systems and t

SenX 322 Dec 29, 2022
MixStack lets you connects Flutter smoothly with Native pages, supports things like Multiple Tab Embeded Flutter View, Dynamic tab changing, and more. You can enjoy a smooth transition from legacy native code to Flutter with it.

中文 README MixStack MixStack lets you connects Flutter smoothly with Native pages, supports things like Multiple Tab Embeded Flutter View, Dynamic tab

Yuewen Engineering 80 Dec 19, 2022
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

About CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time. CrateDB offers the

Crate.io 3.6k Jan 2, 2023
Apache Druid: a high performance real-time analytics database.

Website | Documentation | Developer Mailing List | User Mailing List | Slack | Twitter | Download Apache Druid Druid is a high performance real-time a

The Apache Software Foundation 12.3k Jan 1, 2023
Student Result Management System - This is a CLI based software where the Software is capable of maintaining and generating Student's Result at the end of a semester after the teacher's have provided the respective marks.

Student Result Management System This is a CLI based software where the Software is capable of maintaining and generating Student's Result at the end

Abir Bhattacharya 3 Aug 27, 2022
Java implementation of Condensation - a zero-trust distributed database that ensures data ownership and data security

Java implementation of Condensation About Condensation enables to build modern applications while ensuring data ownership and security. It's a one sto

CondensationDB 43 Oct 19, 2022
Database Subsetting and Relational Data Browsing Tool.

Jailer Database Tool Jailer is a tool for database subsetting and relational data browsing. The Subsetter exports consistent, referentially intact row

Wisser 1.5k Jan 7, 2023
HurricaneDB a real-time distributed OLAP engine, powered by Apache Pinot

HurricaneDB is a real-time distributed OLAP datastore, built to deliver scalable real-time analytics with low latency. It can ingest from batch data sources (such as Hadoop HDFS, Amazon S3, Azure ADLS, Google Cloud Storage) as well as stream data sources (such as Apache Kafka).

GuinsooLab 4 Dec 28, 2022