Skip to content

重大版本更新

Compare
Choose a tag to compare
@eedalong eedalong released this 28 Apr 00:45
· 135 commits to main since this release
2e8f4cb

重大版本更新!!!!

由于这个版本更新实在是太大了,避免英文介绍不清楚故直接使用中文来介绍。

一、抛除了Session,只支持SessionPool

在原先的版本中我们支持Session, 后来为了支持并发客户端请求继而又支持了SessionPool, 然而SessionPool本身为Session的超集,当SessionPoolpool_size设置为1时便退化到了Session。思考再三我们决定去除掉对Session的支持,日后只专注于支持SessionPool以避免代码变得越来越庞大。

二、抛除 Field的抽象

Field本身提供的是泛型的概念,其最初来源于C++客户端的实现后被Go语言客户端以及Python客户端沿用。但实际上C#本身支持Generic Type,故在C#客户端中我们决定去除Field,进而直接使用Object泛型。

三、Record相关API更新

在过去的版本中我们参考IoTDB的接口封装参数形式,对Record相关接口参数分别有type_listvalue_list,同时 value_list为值的string形式。这实际上本质来源于C++客户端中没有实现对泛型很好的支持,进而通过这种方式进行接口支持。在C#中我们借助泛型,使得各种面向用户的Record相关接口参数直接接受Record,同时Record的定义如下。

 public RowRecord(long timestamp, List<Object> values, List<string> measurements){
        this.timestamp = timestamp;
        this.values = values;
        this.measurements = measurements;
    }

Record的接口变成如下形式

public async Task<int> insert_record_async(string device_id, RowRecord record){}

新版本的接口在易用性上有较大的提升,同时对序列化性能有更友好。

四、 面向用户的接口均为Async接口

SessionPool中我们将面向用户的接口均实现为async接口以方便用户层的使用。

五、使用示例

用户可参照测试代码了解使用示例