配置

pipelinedb.stream_insert_level

INSERT 操作有以下三种模式:

  • async: 异步模式,数据载入数据库内存后返回。
  • sync_receive (默认): 同步接收,数据被worker进程接受后返回。
  • sync_commit: 同步提交,下游combiner完成所有计算,并更新完变化的数据后返回。

注解

sync_commit 主要用于测试,并且由于其会极大增大写入载荷,所以不适合上生产环境。

pipelinedb.num_combiners

设置并行的combiner进程数,调大后可更好地利用多核性能,并在达到IO瓶颈前增大吞吐量。(默认为1)

pipelinedb.commit_interval

设置combiner提交结果的毫秒时间间隔,更大的间隔会减小数据更新频率和数据丢失的风险,从而提高性能。

pipelinedb.num_workers

设置并行的worker进程数,调大后可更好地利用多核性能,并在达到CPU瓶颈前增大吞吐量。(默认为1)

pipelinedb.num_queues

设置并行的queue进程数,queue 在worker和combiner向流中写入数据时使用,需要一个IPC队列来防止宕机。(默认为1)

pipelinedb.num_reapers

设置并行的reaper进程数,reaper进程用于处理 数据存活-过期

pipelinedb.ttl_expiration_batch_size

设置reaper在流视图的每次转换中可删除的最大记录条数,用于减小数据转换过程中的空间载荷,设置为 0 可以让每次转换操作清除的记录数变为 无限大。(默认10000)

注解

译者注:对于数据量非常大的流视图,建议将此值设为0,否则过期数据的清理会很慢,磁盘空间占用大。

pipelinedb.ttl_expiration_threshold

设置每次数据回收相对TTL的延时比例,这个值设置得越低,产生的删除转换就会更多,数据回收的开销就会越大。(默认5%)

注解

译者注:比如一个流视图的ttl为20小时,ttl_expiration_batch_size为默认值10000,数据每次回收的间隔为20*5%=1小时,每次删除10000条过期数据

pipelinedb.batch_size

设置流视图每个批次处理的最大event数。这个值越大,流视图数据更新的频率就越低,但会增加数据延时,以及在宕机时造成更多的数据丢失。(默认10000)

pipelinedb.combiner_work_mem

设置可用于组合结果数据的最大内存。在combiner进程写入磁盘前,这部分内存可用于其内部的排序操作和哈希表。(默认256mb)

pipelinedb.anonymous_update_checks

PipelineDB新版本检测开关。(默认为true)

pipelinedb.matrels_writable

物化视图可修改开关(默认为false)

注解

译者注:若为false,则流视图中的数据不可被delete,update。

pipelinedb.ipc_hwm

设置worker和combiner进程间IPC消息允许的最大延时。

注解

译者注:可参考此 issue 中作者关于ipc_hwm的说明。

pipelinedb.max_wait

设置进程处理一个batch的最大等待时间。这个值越大,流视图数据更新的频率就越低,但会增加数据延时,以及在宕机时造成更多的数据丢失。(默认10ms)

pipelinedb.fillfactor

设置物化视图的填充因子(空间使用率)。(默认50)

pipelinedb.sliding_window_step_factor

设置滑动窗口步长相对窗口长度的比例。更大的步长会提升性能,但会降低刷新率。(默认5)