Page 231 - 《软件学报》2026年第5期
P. 231
2110 软件学报 2026 年第 37 卷第 5 期
到, bgwriter_lru_multiplier 的配置正常生效需要 background writer 能够正常运行, 从而联想到之前阅读过的
bgwriter_lru_maxpages 描述中有关 background writer 的描述, 如图 3 右侧蓝色部分“When this parameter is set to 0,
the background writer is disabled”, 即如果 bgwriter_lru_maxpages 被设置为 0, 则 background writer 处于 disabled 状
态, 这与 background writer 正常运行的要求产生了矛盾, 于是研究人员推理出一条配置约束:
(bgwriter_lru_maxpages==0) LeadTo NotEffect(bgwriter_lru_multiplier).
vgwriter_lru_multiplier bgwriter_lru_maxpages
···
···
CoT step 1 CoT step 2
CoT step 3
conflict!
图 3 bgwriter_lru_maxpages 和 bgwriter_lru_multiplier 约束提取思维链
在以上的推理过程中我们发现, 研究人员综合分析两个不同的配置项的描述文本推理出了配置间约束, 而正
是 background writer 这一软件功能实体使这两个配置项产生关联. 而在图 4 展示的案例中, 配置间约束展现了更
复杂的关联路径. 如图 4 所示, 研究人员阅读配置项 audit_enabled 的描述时得知将 audit_enabled 设置为 off 会导
致 auditing function 被关闭; 接下来研究人员阅读配置项 audit_resource_policy 的描述时发现 audit_resource_
policy 作用于 audit logs 功能, 当 audit_resource_policy 被设置为 off 时, audit logs 按照最小持续时间作为触发条件,
结合 audit_enabled 的描述, 研究人员认为 audit logs 功能还依赖 auditing function 的开启; 而在 audit_file_remain_
time 的描述中研究人员发现 audit_file_remain_time 定义了触发 audit logs 的最小持续时间, 因此 audit_file_remain_
time 依赖于 audit logs 将时间作为触发条件, 即“audit logs are preferentially stored by time”. 总结上述一系列发现,
研究人员得出了以下配置间约束:
(audit_enabled==off or audit_resource_policy!=off) LeadTo NotEffect(audit_file_remain_time).
audit_enabled audit_resource_policy
...
... ...
Conflict!
auditing (audit logs)
Lead to auditing Require Require audit logs Require are preferentially
function is disabled function work normally
is enabled stored by time
audit_file_remain_time Require
audit_file_remain_time
Specifies the minimum duration required take effect
for recording audit logs ···
图 4 audit_file_remain_time 约束提取思维链
从以上的推理中可以发现, 该条配置约束涉及软件配置对软件功能状态的影响、软件功能之间的依赖关系、
软件配置之间的依赖关系等多种依赖关系, 研究人员通过对这些依赖关系的理解、记忆和组合, 推断出多个配置
之间存在的约束关系. 回顾约束推断过程并进行抽象, 我们发现配置间约束推断的依据是一个多种异构节点相互

