Fastjson 在HiTSDB中的应用

HiTSDB协议使用json作为轻量级的数据交换语言。
Jackson是最为广泛使用的Json格式数据的生成和解析框架之一。
HiTSDB服务端默认使用Jackson。
本文主要分析了Jackson对HiTSDB性能的影响以及提高方案

先来看一下Java性能tuning 利器jmc的分析结果:
Fastjson 在HiTSDB中的应用

哇, 排到了第二位,值得投点精力进去了。
搭个环境看看机器的资源消耗:

写入TPS

Fastjson 在HiTSDB中的应用

24Core, 96G物理机,100万TPS下测试, CPU消耗到了40+。

Jackson CPU 占用

Fastjson 在HiTSDB中的应用

FastJson 应用

第一弹:

换成Fastjson的大利器,BeanToArray映射模式。

由于HiTSDB的写入字段固定并且有序
[metric,timestamp,value, tags, tsuid, granularity, aggregator]
所以解析可以节省json key的部分。

效果不错, 大部分CPU 到了40-。
Fastjson 在HiTSDB中的应用

第二弹:

忽略optional字段;Value采用Double类型

由于tsuid, granularity, aggregator这三个字段是optional的,所以可以省略解析。

value字段默认是String,由于目前支持数值型的技术,可以存储成Double类型

最终采用FastJson CPU 占用稳定在30+。
Fastjson 在HiTSDB中的应用

结论:

HiTSDB采用Fastjson后,CPU消耗比降低了10点左右

上一篇:时序数据库连载系列: RISElab的大杀器Confluo


下一篇:缓存失效瞬间高并发访问导致数据库负载升高的问题处理