Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

我正在DolphinDB上执行各种计算,速度足够好。但是我在DolphinDB中的写性能遇到了障碍,因为我的数据有成千上万的列,所以要花几秒钟来写100条记录。我该如何改善?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
420 views
Welcome To Ask or Share your Answers For Others

1 Answer

你是否启用了cacheEngine功能?
CacheEngine是DolphinDB database中的一种数据写入缓存机制,它是为了解决数据表列数过多的情况下写入性能急剧下降的问题而引入的。 DolphinDB采用的是列式存储,一个分区内的每一列数据单独存放在一个文件中。如果表的列数过多(比如物联网场景下同时记录几千个指标), 每进行一次数据写入,就要对几千个物理文件进行操作(打开,写入,关闭等)。引入CacheEngine以后,写入操作时首先写入缓存中,到达一定阈值以后, 开始异步将缓存中的数据写入磁盘中。
CacheEngine能够提升写入性能的基本逻辑在于:对一个文件进行写入时,写入1行数据和写入1000行数据的时间基本相等,大部分时间都花在打开和关闭文件上; 因此,如果把多次少量的写入缓存起来,在一次文件IO中批量写入,那么就可以节省许多对文件进行打开和关闭带来的时间开销,从而在整体上提升系统的写入性能。

要启用cacheEngine,请在配置文件中添加一行设置,如下所示:

//in unit of GB
chunkCacheEngineMemSize = 4

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...