论文部分内容阅读
随着基于规则的系统的广泛使用,规则匹配的效率问题越来越受到人们的重视。自上世纪七、八十年代以来,人们一直为提高规则匹配的效率而努力。本文通过对优秀规则推理引擎系统进行学习和研究,同时在对分布式计算框架研究和学习的基础上,提出和实现了一个基于MapReduce的分布式规则匹配架构,利用MapReduce的思想,将匹配任务分解到一个集群中,并经过适当的归并,快速得到规则匹配的结果。在大规模的规则和数据的环境下能够显著提高规则的匹配效率,并且使系统具有更好的可扩展性和灵活性。本文首先从总体需求、接口及系统效率和可靠性需求等几个方面对系统需求进行了分析,并在此基础上提出了系统的总体架构。和MapReduce架构一致,系统采用了Master/Worker模式,将Worker分为Map Worker和Reduce Worker,分别进行分布式规则的匹配和结果汇总的工作。Master负责完成任务的分解和分配,并对所有Worker进行管理和监控。然后对分布式规则匹配系统的任务分配策略进行了介绍。在将规则分解成子规则的基础上,提出了一种子规则的分配策略,根据服务器负载信息和已分配的子规则信息,实现将子规则及规则匹配的任务能够均衡地分配到分布式环境中。在对事实进行分配时,基于子规则的分配情况,提出了事实的分配策略,将事实分配到存在相应子规则的Map Worker上。并给出了处理子规则与事实匹配的具体Map过程。接着详细介绍了分布式规则在完成匹配后的触发和执行方式。给出了在归并中间结果时所采用的具体Reduce过程。在处理规则触发时,提出了对关联规则进行触发的方法,并给出了控制规则触发过程的方式。在处理冲突时,介绍了几种比较常用的冲突解决策略。文章最后给出了原型系统的实现类图并对系统的性能进行了测试。在系统实现部分,以实现类图的方式介绍了对Master Map Worker、Reduce Worker及系统交互IO等主要模块的设计。通过对不同问题规模和服务器规模的情况进行测试,比较了系统匹配效率,测试结果基本上达到了预期效果。