本申请提供了一种目录服务数据检索方法,应用于设置有数据结构为二叉平衡树的内嵌式数据库的目录服务器,所述方法包括:获取目录服务数据,将所述目录服务数据封装为数据节点,所述数据节点包括目录服务数据关键值,将所述数据节点插入所述内嵌式数据库二叉平衡树结构中,作为所述二叉平衡树的一个树节点进行存储;调整所述内嵌式数据库二叉平衡树的结构,使其处于平衡状态;当用户需要对目录服务数据进行检索时,接收用户发送的目录服务数据查询请求,所述数据查询请求包括所需查询目录服务数据的关键匹配值,依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点,获取所述数据节点中的目录服务数据。
【技术实现步骤摘要】
本专利技术涉及目录服务
,特别涉及一种目录服务数据检索方法及系统。技术背景随着计算机网络的日益发展,特别是hternet的发展,网络上的资源日益增多, 为了能统一管理这些资源,开始把目录服务技术用于对网络上各种资源、用户、设备、应用软件等地管理。目录服务已成为当今网络上的一种基础平台软件,并且逐渐成为网络的核心。而LDAP(Light Directory Access Protocol,轻量级访问协议)作为一种目录信息的轻量级访问协议,提供了简易、高效、可定制的目录服务,其高效的数据读取性,广泛应用于用户身份认证管理、数字证书服务等领域。目前目录的存储方式主要分为两种文本方式和数据库方式。文本存储方式使用LDIF(Light Directory Interchange Format,轻量级目录交换格式)标准格式的文件来存储目录信息,将每个条目数据封装成LDIF格式存储在以 DN(Distinguished Name,区别名)命名的文件中。但这种单一的存储格式很难满足条目属性值得快速过滤,极大地影响了查询性能。数据库方式的存储主要采用嵌入式数据库、关系数据库与xml (Extensible Markup Language,可扩展标记语言)数据库三种。该存储方式虽然能够降低数据存储管理过程中目录服务器与数据库之间的系统调用开销。但是随着应用系统处理的数据量越来越大,尤其是达到海量数据时,数据库访问的响应速度会受到很大影响。
技术实现思路
本专利技术所要解决的技术问题是提供一种目录服务数据检索方法,用以解决现有技术中当目录服务器在处理海量数据时检索性能降低的问题。为解决上述问题,本专利技术公开了一种目录服务数据检索方法,该方法应用于目录服务器,所述目录服务器中设置有内嵌式数据库,所述内嵌式数据库为二叉平衡树结构,所述方法包括获取目录服务数据,将所述目录服务数据封装为数据节点,所述数据节点包括目录服务数据关键值,将所述数据节点插入所述内嵌式数据库二叉平衡树结构中,作为所述二叉平衡树的一个树节点进行存储;调整所述内嵌式数据库二叉平衡树的结构,使其处于平衡状态;当用户需要对目录服务数据进行检索时,接收用户发送的目录服务数据查询请求,所述数据查询请求包括所需查询目录服务数据的关键匹配值,依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点,获取所述数据节点中的目录服务数据。 上述方法,优选地,所述获取目录服务数据,将所述目录服务数据封装为数据节点,并将所述数据节点插入所述内嵌式数据库二叉平衡树结构中,作为所述二叉平衡树的一个树节点进行存储后还包括将指向所述数据节点所在的树节点的相邻树节点的指针信息存放入所述数据节点所在的树节点中。上述方法,优选地,所述依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点包括根据所述关键匹配值提取目录服务数据索引值,根据所述目录服务数据索引值或预先设定的索引去匹配过滤规则在所述目录服务内嵌式数据库的二叉平衡树结构中过滤出与所述目录服务索引值相对应的目录服务数据的数据节点范围;根据所述关键匹配值在所述过滤后的目录服务数据的数据节点范围内查询与所述关键匹配值相对应的数据节点。上述方法,优选地,所述方法还包括将已查询过的目录服务数据作为目录服务数据缓存对象进行存储,形成目录服务数据缓存对象集合,所述目录服务数据缓存对象包括目录服务数据的缓存关键值。上述方法,优选地,所述依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点,获取所述数据节点中的目录服务数据包括根据所述关键匹配值在目录服务数据缓存对象集合中查询与其相对应的目录服务数据缓存对象,获取目录服务数据;当在目录服务数据缓存对象集合中未查询到与所述关键匹配值相对应的目录服务数据缓存对象时,依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点,获取所述数据节点中的目录服务数据。上述方法,优选地,调整所述内嵌式数据库二叉平衡树结构,使其处于平衡状态包括判断所述内嵌式数据库的二叉平衡树结构最小失衡子树;调整最小失衡子树结构,使其处于平衡状态。上述方法,优选地,所述将所述目录服务数据作为目录服务缓存对象进行存储包括将所述目录服务数据作为目录服务缓存对象以哈希表的数据结构进行存储。本专利技术还提供了一种目录服务数据检索系统,用以保证上述方法在实际中的实现及应用,该系统应用于目录服务库中,所述目录服务器中设置有内嵌式数据库,所述内嵌式数据库为二叉平衡树结构,所述系统包括目录服务数据存储模块、平衡模块及目录服务数据检索模块,其中所述目录服务数据存储模块,用于获取目录服务数据,将所述目录服务数据封装为数据节点,所述数据节点包括目录服务数据关键值,将所述数据节点插入所述内嵌式数据库二叉平衡树结构中,作为所述二叉平衡树的一个树节点进行存储;所述平衡模块,用于调整所述内嵌式数据库二叉平衡树的结构,使其处于平衡状态;所述目录服务数据检索模块,用于当用户需要对目录服务数据进行检索时,接收用户发送的目录服务数据查询请求,所述数据查询请求包括所需查询目录服务数据的关键匹配值,依据所述关键匹配值在所述目录服务内嵌式数据库的二叉平衡树结构中查找与其相对应的数据节点,获取所述数据节点中的目录服务数据。上述系统,优选地,所述系统还包括索引去匹配过滤规则设定模块和目录服务数据索引模块所述索引去匹配过滤规则设定模块,用于设定索引去匹配过滤规则;所述目录服务数据索引模块,用于根据所述关键匹配值提取目录服务数据索引值,根据所述目录服务数据索引值或预先设定的索引去匹配过滤规则在所述目录服务内嵌式数据库的二叉平衡树结构中过滤出与所述目录服务索引值相对应的目录服务数据的数据节点范围,然后再根据所述关键匹配值在所述过滤后的目录服务数据的数据节点范围内查询与所述关键匹配值相对应的数据节点。上述系统,优选地,所述系统还包括缓存中心和目录服务数据缓存检索模块所述缓存中心,用于将查询到的目录服务数据作为目录服务数据缓存对象进行存储;所述目录服务数据缓存检索模块,用于根据所述关键匹配值在所述缓存中心中查询与其相对应的目录服务数据缓存对象,获取目录服务数据。综上所述,本专利技术提供的一种目录服务数据检索方法及其系统,基于内嵌式数据库的存储方式,将目录服务数据封装成数据节点存储入二叉平衡树的结构的树节点中,在每个树节点中含有指向其下一个节点的指针信息,在树形层次结构中检索,加快了检索速度。在检索时引入索引机制,在数据检索前先搜索索引值,缩小检索范围,加快了查询目录服务数据的速度。另外引入缓存技术,将已经查询过的目录服务数据放入缓存中,当查询过缓存中不存在要查询的目录服务数据时,再从数据库中查找,由此避免了从数据库中直接查询数据所带来的额外时间消耗和系统浪费,使得搜索访问的效率大大提高,从而提高了应用程序的运行性能。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。 附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:陈妍妍,段文良,
申请(专利权)人:山东中创软件商用中间件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。