配置¶
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)