重大版本更新
重大版本更新!!!!
由于这个版本更新实在是太大了,避免英文介绍不清楚故直接使用中文来介绍。
一、抛除了Session,只支持SessionPool
在原先的版本中我们支持Session
, 后来为了支持并发客户端请求继而又支持了SessionPool
, 然而SessionPool
本身为Session
的超集,当SessionPool
的pool_size
设置为1
时便退化到了Session
。思考再三我们决定去除掉对Session
的支持,日后只专注于支持SessionPool
以避免代码变得越来越庞大。
二、抛除 Field的抽象
Field
本身提供的是泛型的概念,其最初来源于C++客户端的实现后被Go语言客户端以及Python客户端沿用。但实际上C#本身支持Generic Type
,故在C#客户端中我们决定去除Field
,进而直接使用Object泛型。
三、Record相关API更新
在过去的版本中我们参考IoTDB的接口封装参数形式,对Record相关接口参数分别有type_list
和value_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接口以方便用户层的使用。
五、使用示例
用户可参照测试代码了解使用示例