最新文档基于二元组的简单正则表达式的快速检索算法.docx
《最新文档基于二元组的简单正则表达式的快速检索算法.docx》由会员分享,可在线阅读,更多相关《最新文档基于二元组的简单正则表达式的快速检索算法.docx(9页珍藏版)》请在第一文库网上搜索。
1、基于二元组的简单正则表达式的快速检索算法摘要:在大型数据集群网络中,业务逻辑节点和数据库节点分布在不同的地理位置,导致在该网络中创建或检索用户数据将经历较大的网络延迟。如何快速找到用户数据的地理位置节点(服务器识别号)将是减少网络延迟的关键。介绍一种动态索引算法,基于简单正则表达,建立用户数据和服务器组之间的映射关系,并引入动态多叉树,实现动态更改映射关系。引入一元组数据节点和二元组数据节点的概念,应用于多叉树,通过分析一元组多叉树和二元组多叉树的时间效率和空间效率,证明二元组多叉树随着树深的增长,检索时间复杂度保持更好的线性特性。通过一些性能测试的实验数据的比较,得出二元组方案的综合性能更优
2、的结论。最后,简要地介绍该算法的应用领域。关键词:二元组;正则表达式;多叉树;快速检索;IMS;IMPI;IMPU中图分类号:TN915.12文献标识码:A文章编号:1005-3824(2014)01-0071-050引言随着3G网络商用化的成熟和1TE演进,移动数据网的用户数量必然随着各种丰富的移动应用而快速增长。移动数据网最大特点就是用户注册时能够实现用户标识分离1,即用户身份和用户终端标识的分离,IMS/SIP网中IMP12/IMPU3能够很好支持用户标识分离。大型IMS/SIP商用网络的用户数据管理是基于数据集群网络,同一个用户的信息可能分布在不同的地理位置服务器,同时用户数据的主服务
3、器和备份服务器也是分布在不同地理位置。这就决定了用户数据创建和检索的复杂性。通过数据库集群网络,如MySQ1,解决这个困难的做法是,引入索引服务器,通过静态配置用户数据和服务器组的映射关系来克服。但是这种方法由于具有静态性,用户不能动态更改映射关系,并且这种映射关系存在一对一的局限性,使问题的解决效率不高。本文介绍了一种动态索引算法,该算法可以根据用户的需求,动态更新映射规则,并且实现一个用户数据对多个服务器(即一个服务器组)的复杂映射关系。算法的核心是:基于简单正则表达,实现用户数据和服务器组的复杂映射关系,并引入常驻内存的动态多叉树4实现用户动态更改映射关系。因此,在IMS网络中用于创建或
4、检索用户数据时,该算法能快速定位所在分布式数据集群网络中的地理位置节点。在此基础上,为了降低迭代次数,本文引入一元组数据节点和二元组数据节点的概念,分别应用于该多叉树。通过分析一元组数据节点和二元组数据节点,以及一元组多叉树和二元组多叉树的时间效率和空间效率,从理论上证明二元组多叉树虽然空间开销稍大一些,但是,基于二元组的多叉树随着树深增长,检索时间复杂度保持更好的线性特性。通过一些性能测试实验数据的比较证明了本文的理论分析,同时得出二元组方案综合性能更优的结论。最后,简要地介绍该算法可能的应用领域。1简单正则表达式的定义简单正则表达式支持的格式为u%xOOuOO%xOOw%xOO%xOOw%
5、xOO,每个”是一个符合RFC24862(IMPI格式)和RFC32613(SIPIMPU格式)规定的有效字符,cOOw%xOO中的W是匹配规则通配符串,且d)0w%x00的个数和位置没有限定,为了简化算法和提高检索性能,我们规定如果出现多个%xOOw%xOO通配符,2个通配符中间至少需要一个。我们之所以选择MOO封装通配符,是因为根据RFC2486(IMPI)和RFC3261(SIPIMPU),“x00”是未被IMPU和IMPI使用的;同时,使用%x00封装通配符可以避免和其他字符,如等发生冲突;另外,封装字符串%x00对大小写不敏感,也就是说%X00和“朝00”是等价的。“%xOOw%xO
6、O”通用语法确定为u%xOO*ADm,n%x00”针对该通用语法的一些特例:1) “刎00*%XO0”表示任意大于等于0的字符串。2) %x00*m,n%x00表示任意大于等于m而小于等于n的字符串,例如/x00*2,6如00”表示任意大于等于2而小于等于6的字符串。如果n或m不出现,则表示没有上限或下限,例如,姒00*,5%x00表示任意小于等于5的字符串;”x00*2,%Xo0”表示任意大于等于2的字符串。3)当“A”或D”字母出现在星号之后,该通配符串用于匹配纯字母串或纯数字串。2动态多叉树的构建表1中,我们给出了一个服务器组标识符和模式字符串之间映射的例子,模式字符串是在第一小节中定义
7、的。本小节中,如何根据模式字符串构建动态多叉树,将给出2种不同的方案。方案U每棵多叉树由3种节点组成。根节点:即根模式节点,该节点只存储树的入口地址;中间节点:即中间模式节点,除了存储指向子节点地址信息外,还存储最多不超过一个通配符加一个常字符分割符,或一个常字符分割串,但不能为空,我们把这种节点所存储的数据称为一元组数据;如果2个通配符之间有多个字符,从第二个字符开始,整个字符串作为常字符分割串存储在其子节点中;叶子节点:即叶模式节点,除了存储1个一元组数据,还存储最终要检索的服务器组标识符。如图1所示,我们把该多叉树称为一元组多叉树。该方案的最大局限性是每个通配符后面都必须跟一个常字符分割
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 文档 基于 二元 简单 正则 表达式 快速 检索 算法
