一种数据处理方法及装置制造方法及图纸

技术编号:19240364 阅读:29 留言:0更新日期:2018-10-24 03:55
本发明专利技术实施例提供了一种数据处理方法及装置。一方面,本发明专利技术实施例通过在数据库中利用一条记录存储所述树状结构数据;一条记录中包含M个字段,M等于树状结构数据中节点总数,每个字段包含树状结构数据中的一个节点以及该节点最近的父节点信息;然后,根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息;从而,在分布式存储系统中,将各节点作为关键字进行存储,以及,将每个节点各自对应的父子节点信息作为关键字对应的数值进行存储。本发明专利技术实施例提供的技术方案用以解决现有技术中通过数据库直接读取树状结构数据时读取性能比较低的问题。

【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及计算机
,尤其涉及一种数据处理方法及装置。
技术介绍
即时通讯工具是一种终端服务,允许两个或者多个用户通过网络即时传递文字、档案、语音和视频。一般的,即时通讯工具按照使用用途可以分为企业版和个人版,按照终端上装载的对象又可以分为手机版和电脑版。现有技术中,企业版的即时通讯工具往往需要在客户端上展现企业的组织架构信息,该组织架构信息是一种树状结构数据,存储在即时通讯工具提供者的数据库中,客户端可以直接从数据库中拉取所需要的组织架构信息,然后将组织架构信息展现给用户。然而,通过数据库直接读取这种树状结构数据,其读取性能比较低(约每秒2000次),影响即时通讯工具的服务能力。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数据处理方法及装置,用以解决现有技术中通过数据库直接读取树状结构数据时读取性能比较低的问题。一方面,本专利技术实施例提供了一种数据处理方法,包括:在数据库中利用一条记录存储树状结构数据;所述一条记录中包含M个字段,M等于所述树状结构数据中节点总数,每个字段包含所述树状结构数据中的一个节点以及该节点最近的父节点信息;根据所述数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息;在分布式存储系统中,将各节点作为关键字进行存储,以及,将每个节点各自对应的父子节点信息作为关键字对应的数值进行存储。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:在所述分布式存储系统中,将所述树状结构数据的节点列表作为关键字进行存储,以及,将各节点组成的节点序列作为该关键字对应的数值进行存储。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息之前,所述方法还包括:判断所述数据库所存储的指定记录所表达的树状结构是否符合指定条件;若所述数据库所存储的指定记录所表达的树状结构符合指定条件,执行根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息的步骤。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述指定条件包括:所述数据库所存储的所述指定记录所表达的树状结构的数目等于1;以及,所述数据库所存储的所述指定记录所表达的树状结构不存在闭环结构。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式存储系统包括至少两个缓存器;所述方法还包括:接收更新请求,所述更新请求携带第一指定关键字和对应的数值;响应于所述更新请求,确定当前可更新的缓存器;基于所述第一指定关键字和对应的数值,对当前可更新的缓存器进行更新;更新完成后,将缓存器指针设置为指向该缓存器。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述响应于所述更新请求,确定当前可更新的缓存器,包括:响应于所述更新请求,获取与所述第一指定关键字对应的缓存器指针;根据所述缓存器指针,确定当前可更新的缓存器。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:接收客户端发送的查询请求,所述查询请求携带第二指定关键字;响应于所述查询请求,确定当前可提供服务的缓存器;根据所述第二指定关键字,从当前可提供服务的缓存器中获取与所述第二指定关键字对应的数值;向所述客户端返回与所述第二指定关键字对应的数值。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述响应于所述查询请求,确定当前可提供服务的缓存器,包括:响应于所述查询请求,获取与所述第二指定关键字对应的缓存器指针;将所述缓存器指针所指向的缓存器作为当前可提供服务的缓存器。另一方面,本专利技术实施例提供了一种数据处理装置,包括:信息存储单元,用于在数据库中利用一条记录存储树状结构数据;所述一条记录中包含M个字段,M等于所述树状结构数据中节点总数,每个字段包含所述树状结构数据中的一个节点以及该节点最近的父节点信息;信息提取单元,用于根据所述数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息;信息处理单元,用于在分布式存储系统中,将各节点作为关键字进行存储,以及,将每个节点各自对应的父子节点信息作为关键字对应的数值进行存储。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述信息处理单元,还用于在所述分布式存储系统中,将所述树状结构数据的节点列表作为关键字进行存储,以及,将各节点组成的节点序列作为该关键字对应的数值进行存储。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:判断单元,用于判断所述数据库所存储的指定记录所表达的树状结构是否符合指定条件;若所述数据库所存储的指定记录所表达的树状结构符合指定条件,还用于触发所述信息提取单元根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分布式存储系统包括至少两个缓存器;所述装置还包括:接收单元,用于接收更新请求,所述更新请求携带第一指定关键字和对应的数值;请求处理单元,用于响应于所述更新请求,确定当前可更新的缓存器;以及,基于所述第一指定关键字和对应的数值,对当前可更新的缓存器进行更新;以及,更新完成后,将缓存器指针设置为指向该缓存器。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述请求处理单元,具体用于:响应于所述更新请求,获取与所述第一指定关键字对应的缓存器指针;根据所述缓存器指针,确定当前可更新的缓存器。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收单元,还用于接收客户端发送的查询请求,所述查询请求携带第二指定关键字;所述请求处理单元,还用于响应于所述查询请求,确定当前可提供服务的缓存器;以及,根据所述第二指定关键字,从当前可提供服务的缓存器中获取与所述第二指定关键字对应的数值;所述装置还包括:发送单元,用于向所述客户端返回与所述第二指定关键字对应的数值。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述请求处理单元,具体用于:响应于所述查询请求,获取与所述第二指定关键字对应的缓存器指针;将所述缓存器指针所指向的缓存器作为当前可提供服务的缓存器。上述技术方案中的一个技术方案具有如下有益效果:本专利技术实施例中,利用基于关键字-数值的分布式存储系统来存储树状结构数据中的各节点以及各节点的相关信息,基于存储的这些信息向客户端提供数据读取服务时,客户端能够快速查找和定位树状结构数据(如企业的组织架构信息),实现了树状结构数据的高速访问,访问速度每秒可达100000次,是数据库的50倍。与现有技术中这些信息利用数据库进行存储的技术方案相比,提高了数据读取性能,如果应用于即时通讯工具,可提升即时通讯工具的服务能力,从而提升用户体验。【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:在数据库中利用一条记录存储树状结构数据;所述一条记录中包含M个字段,M等于所述树状结构数据中节点总数,每个字段包含所述树状结构数据中的一个节点以及该节点最近的父节点信息;根据所述数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息;在分布式存储系统中,将各节点作为关键字进行存储,以及,将每个节点各自对应的父子节点信息作为关键字对应的数值进行存储。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:在数据库中利用一条记录存储树状结构数据;所述一条记录中包含M个字段,M等于所述树状结构数据中节点总数,每个字段包含所述树状结构数据中的一个节点以及该节点最近的父节点信息;根据所述数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息;在分布式存储系统中,将各节点作为关键字进行存储,以及,将每个节点各自对应的父子节点信息作为关键字对应的数值进行存储。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述分布式存储系统中,将所述树状结构数据的节点列表作为关键字进行存储,以及,将各节点组成的节点序列作为该关键字对应的数值进行存储。3.根据权利要求1或2所述的方法,其特征在于,所述根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息之前,所述方法还包括:判断所述数据库所存储的指定记录所表达的树状结构是否符合指定条件;若所述数据库所存储的指定记录所表达的树状结构符合指定条件,执行根据数据库所存储的指定记录中的树状结构数据,得到所述树状结构数据中的各节点以及每个节点各自的父子节点信息的步骤。4.根据权利要求3所述的方法,其特征在于,所述指定条件包括:所述数据库所存储的所述指定记录所表达的树状结构的数目等于1;以及,所述数据库所存储的所述指定记录所表达的树状结构不存在闭环结构。5.根据权利要求1所述的方法,其特征在于,所述分布式存储系统包括至少两个缓存器;所述方法还包括:接收更新请求,所述更新请求携带第一指定关键字和对应的数值;响应于所述更新请求,确定当前可更新的缓存器;基于所述第一指定关键字和对应的数值,对当前可更新的缓存器进行更新;更新完成后,将缓存器指针设置为指向该缓存器。6.根据权利要求5所述的方法,其特征在于,所述响应于所述更新请求,确定当前可更新的缓存器,包括:响应于所述更新请求,获取与所述第一指定关键字对应的缓存器指针;根据所述缓存器指针,确定当前可更新的缓存器。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:接收客户端发送的查询请求,所述查询请求携带第二指定关键字;响应于所述查询请求,确定当前可提供服务的缓存器;根据所述第二指定关键字,从当前可提供服务的缓存器中获取与所述第二指定关键字对应的数值;向所述客户端返回与所述第二指定关键字对应的数值。8.根据权利要求7所述的方法,其特征在于,所述响应于所述查询请求,确定当前可提供服务的缓存器,包括:响应于所述查询请求,获取与所述第二指定关键字对应的缓...

【专利技术属性】
技术研发人员:刘勇罗根王博秦志雷
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1