有什么措施可提升DolphinDB的写入和查询性能

发布于 2022-09-12 03:49:50 字数 63 浏览 21 评论 0

假如目前部署了DolphinDB database4个计算节点,要让4个节点的性能发挥到最大,有什么措施和建议?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溺ぐ爱和你が 2022-09-19 03:49:50

提升写入性能的措施包括

一是采用多个客户端多线程并行写入,但要注意多个writer不能同时往同一个分区写入。

二是启用RedoLog功能和写入数据缓存(CacheEngine)功能,这个采用同步写入确保数据安全,也就是说只有元数据和RedoLog刷入磁盘后,才返回结果给客户端。如用于研究等非生产环境,也可采用异步写入,写入的延迟和吞吐量可以进一步改进。

三是批量写入,每次写入数据量不宜过小,一般每次数据量写入在几十兆字节比较合适。

四是每次写入数据涉及的分区数据量不宜过多。DolphinDB按照分区来列式存储,比如每次写入1000分区10列,那么每次需要写10000(1000*10)个文件,会严重影响写入性能。

提升查询性能的措施包括

合理的分区设计非常重要。以量化金融领域为例,一般用时间和产品标识两个维度来进行分区。时间维度可按天、按月等进行分区,具体选哪个需要根据数据量和典型查询场景进行具体分析和设计。产品标识维度的分区可以采用哈希、范围、值、列表等多种方法,原则就是要根据业务特点对数据进行均匀分割。DolphinDB不提供行级的索引,而是将分区作为数据库的物理索引。因此每个分区的数据量不宜过大。一般我们建议一个表在一个分区的数据量在100MB左右。

在集群部署方面,合理的参数配置,使系统均衡合理的使用这些资源,能充分发挥机器的性能:

cpu:配置workerNum和localExecutors,workerNum和localExecutors直接决定系统并发处理能力,应多个数据节点平均分配,尽可能利用主机所有的cpu并发处理能力。

内存:配置节点使用的最大内存量maxMemSize。内存对于改进计算节点的性能非常明显,尽可能高配。但要根据物理内存的大小来调整,否则操作系统内部内存不足时,会杀死进程。

磁盘:配置两种不同的硬盘,将元数据、RedoLog等数据库日志写入容量较小但性能较高的固态硬盘或者高性能IO设备;将海量数据写入容量较大的机械硬盘。不同的数据节点配置不同的磁盘,每个数据节点挂载多卷(volumes),以并行利用多个磁盘的I/O接口。

网络:服务器之间用万兆网卡连接,提高网络性能。

相关参数的详细描述请参阅https://github.com/dolphindb/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文