当前位置: 首页 > 工具软件 > PipelineDB > 使用案例 >

PipelineDB 配置参数说明

班言
2023-12-01
1、pipelinedb.stream_insert_level

决定客户端insert操作后,如何响应客户端
async:插入加载到内存就响应客户端
sync_receive(default):work process进程收到后响应客户端
sync_commit:当下游的combiner从插入的行提交所有的变更结果后响应哭护短

sync_commit主要用户测试目的,因为写延迟增加,不适合生产环境

2、pipelinedb.num_combiners

有多少个combiner进程。由于combiner进程负责将计算好的结果数据合并落盘,所以当设置的COMBINER进程个数足够达到IO瓶颈时为宜,默认为1

3、pipelinedb.commit_interval

每个combiner进程,会先将合并的结果数据HOLD在combiner_work_mem,以提高性能。commit_interval表示间隔多长时间刷提交结果。

表示间隔多久提交结果,每个combiner处理的数据在内存中保持的毫秒数。太长的时间间隔有潜在丢失数据的风险。默认值:50ms。

4、pipelinedb.num_workers

设置要用于每个数据库的并行连续查询worker process进程数。较高的设置将利用多个核心并提高吞吐量,受CPU限制。默认值:1。

5、pipelinedb.num_queues

设置用于每个数据库的并行连续查询队列进程数。当woker和combiner将结果写入流时,使用队列,需要IPC队列来防止停止流的写入。默认值:1。

Sets the number of parallel continuous query queue processes to use for each database. Queues are used when workers and combiners are writing out results to streams, necessitating an IPC queue to prevent stalls. Default: 1.

6、pipelinedb.num_reapers

设置每个数据库的并行收割者进程数。收割者进程处理(TTL)到期的数据。默认值:1。

7、pipelinedb.ttl_expiration_batch_size

清除设置了TTL的continue view的过期数据,一个事务中,最多清理多少条数据,主要防止长事务。
设置收割者从每个事务的连续视图中删除的最大行数。最大限度地减少长时间运行的事务。值为0表示在给定事务中可以删除无限数量的行。默认值:10000。

8、pipelinedb.ttl_expiration_threshold

当超出设置阈值多少后,开始清理TTL continuous view过期数据。
例如设置TTL为2天,设置ttl_expiration_threshold为5%。
那么当数据过期达到 (2 + 5%*2) 天后,才开始触发清理。
默认值为:5%

9、pipelinedb.batch_size

当执行一个查询continuous view时,会触发PIPELINEDB对continuous view的结果进行持久化。
batch_size设置,表示执行continuous view查询前,最多允许多少个events堆积(例如insert stream的条数)。
设置越大,查询continuous view的延迟越大,当进程崩溃时丢掉更多数据。默认值为:10000

10、pipelinedb.combiner_work_mem

设置combiner进程处理结果的内存大小。这块内存在combiner合并WORKER计算结果时用于排序,HASH TABLE。如果combiner使用内存超出这个设置,则使用磁盘。默认值:256mb

11、pipelinedb.anonymous_update_checks

切换PipelineDB是否应匿名检查新版本是否可用。默认值:true

12、pipelinedb.matrels_writable

是否允许continue view被直接修改。默认值:false

13、pipelinedb.ipc_hwm

设置woker和combiner进程之间的IPC消息的高水印。默认值:10。

14、pipelinedb.max_wait

设置执行continuous view查询前,最多允许等多长时间。设置越大,说明延迟越大,持续的更新continuous view的间隔越大,当进程崩溃的时候,也会导致大量数据的丢失,这个值和batch_size类似。默认值:10ms

15、pipelinedb.fillfactor

设置continue view的fillfactor,由于流计算的结果continue view需要经常被combiner更新,所以多数为更新操作,那么设置合理的fillfactor可以使得更容易HOT(避免索引膨胀)。默认值:50

16、pipelinedb.sliding_window_step_factor

滑窗continue view的步长设置为滑窗大小的百分比。默认值:5

解释说明:
例如定义滑窗为1小时,那么这个视图就是最近一小时的统计,为了得到这个统计值,必须实时老化一小时前的数据,保持统计是最近一小时的。怎么做到的呢?

实际上pipelinedb内部通过定义比滑窗更小粒度窗口的实时统计,把窗口切成更小的窗口,查询时对小粒度窗口进行汇聚产生大窗口的数据。

例如定义的窗口为1小时,那么可以按分钟的粒度进行统计,查询时,汇聚最近的60个窗口的数据,得到小时的窗口数据。

颗粒度为5,表示5%的颗粒。例如定义窗口为1小时,那么颗粒就是5%*60min = 3min,也就是说会3分钟统计一个值,最后查询时汇聚为1小时的窗口值。

参考:
https://github.com/digoal/blog/blob/master/201811/20181120_02.md
http://docs.pipelinedb.com/conf.html

 类似资料: