基于单哈希多维布隆过滤器的DDS自动发现算法
2021-10-15樊智勇刘哲旭
樊智勇 腾 达 刘哲旭
1(中国民航大学工程技术训练中心 天津 300300) 2(中国民航大学电子信息与自动化学院 天津 300300)
0 引 言
数据分发服务DDS是一种高性能的中间件,能够以较小的开销实现可预测的数据分发。对象管理组织(Object Management Group, OMG)先后颁布了Version1.0、Version1.1和Version1.2规范[1-3]。该规范定义了一个与用户具体使用的平台、语言、所处位置都不相关且可扩展的基础服务模型[4]。DDS采用以数据为中心的发布/订阅通信模式,使分布式系统能够实现数据高效、可靠的发布与订阅[5]。目前,DDS已经被成功应用于海军作战管理、空中交通管制和船舶等系统[6]。
针对DDS自动发现过程,RTI(Real-time Innovations)提出了基于简单发现协议的自动发现算法SDP_ADA(Simple discovery protocol automatic discovery algorithm)[7]。该算法在中小型实时系统中取得了良好的效果,但当系统的规模增大时,大量的数据需要频繁地交换,会产生网络数据传输量和内存消耗较高的问题。文献[8]将DDS简单发现协议和标准布隆过滤器Bloom结合,提出了一种自动发现算法SDPBloom。在自动发现过程中,SDPBloom通过Bloom存储端点描述信息,有效地解决了 SDP_ADA中存在的高内存消耗和高网络数据传输量等问题,增强了DDS的可拓展性。但是SDPBloom的实现需要大量的哈希函数运算,导致CPU资源消耗过多,并在分布式系统中产生了一定的延迟。为解决这一问题,本文提出了一种基于单哈希多维布隆过滤器的自动发现算法。该算法中的OMBF通过一个哈希函数和取模运算代替SDPBloom中多个哈希函数,降低了参与者端点匹配过程的计算量。
1 DDS简单发现协议
域是一个虚拟网络概念,它有助于隔离和优化分布式应用程序之间的通信。……
