提供了一种用于维护基于树形结构的目录关系的方法和系统。所述系统包括:变更检测单元,用于接收来自外部或内部的变更请求,并根据变更请求来设置变更标志和记录与变更请求相关的变更信息;轮询任务单元,用于以预定时间间隔来轮询变更标志;查询及树组装单元,用于根据变更信息来在对变更信息去重之后组装树形结构;以及计算单元,用于根据所述查询及树组装单元组装的树形结构来生成目录树。
【技术实现步骤摘要】
本专利技术涉及一种维护基于树形结构的目录关系的方法和系统。
技术介绍
目前,在许多系统中以树形结构的目录关系来管理系统中的文件。 例如在用于团队协作系统的电子看板系统中,对看板的文件管理是其不可或缺的 一部分,且这些文件一般都隶属于一个虚拟目录树,树的结构是具有树形结构的二维模型。 树形结构的目录能够让看板实践者能更清晰的浏览目录结构及管理叶子文件,也便于看板 对应的团队成员实时掌握看板的文件汇总数据。 传统的基于树形结构的目录关系维护方法采用异步定时刷新或同步实时更新关 联的节点数据。 异步定时刷新过程如下:外部或内部条件导致节点数据变更(增删改),记录变更 历史;定时任务启动,根据时间读取并遍历历史记录;根据历史记录递归查询与其关联的 整棵树,然后从下往上计算父节点列数据(总大小、节点数、按类型汇总数据等),并批量更 新;清除变更的历史记录;进入下一次定时任务。 然而,异步定时刷新降低了虚拟目录树数据的实时性,并且递归查询与变更节点 有关联的整棵树,从而增加了 10交互次数与网络带宽占用率。 另一方面,同步实时更新在并发量大时会出现短时间内重复更新相同父节点的情 况,并增加行锁的概率,影响整个系统的性能,并且需考虑分布式锁从而成本高且会造成数 据的不一致性。 因此,期望提供一种改进的用于维护基于树形结构的目录关系的方法和系统。
技术实现思路
为了解决现有技术中的上述缺点和问题中的至少一个而提出本专利技术。基于现有 技术存在的缺点,本专利技术提供了一种改进的用于维护基于树形结构的目录关系的方法和系 统。 根据本专利技术的方法和系统使用集中缓存存储变更标志,便于在轮询任务检测到变 更时,过滤掉重复的变更信息(提升了CPU的效率),根据去重后的变更节点依次执行,避 免了多实例导致数据的不一致性问题;轮询任务一旦检测到变更就立即进行计算,保证了 数据的实时性;此外,在本专利技术中,被设计为存在多个实际的根节点,缩小了查询树的范围, 提升网络吞吐量,且每条任务数据都增加了对应根节点的冗余,大大减少了查询时的10次 数,提升了性能。 根据一个方面,本专利技术提出了一种用于维护基于树形结构的目录关系的系统,包 括: 变更检测单元,用于接收来自外部或内部的变更请求,并根据变更请求来设置变 更标志和记录与变更请求相关的变更信息; 轮询任务单元,用于以预定时间间隔来轮询变更标志; 查询及树组装单元,用于根据变更信息来在对变更信息去重之后组装树形结构; 以及 计算单元,用于根据所述查询及树组装单元组装的树形结构来生成目录树。 可选地,所述变更信息包括与所述变更请求相关的节点的ID或标识、父节点的ID 或标识、变更时间中的一个或多个。 可选地,所述变更检测单元在设置变更标记的同时继续执行主业务逻辑。 可选地,当所述变更标志指示节点未变更时,所述轮询任务单元确定所述查询及 树组装单元是否已超时未执行,如果是则唤醒所述查询及树组装单元。 可选地,所述查询及树组装单元按时间倒序来查询变更信息,并根据父节点ID或 标识去重。 可选地,所述查询及树组装单元进一步根据去重后的变更信息来查询与变更信息 对应的整个目录树。 可选地,所述查询及树组装单元进一步根据所查询出的节点列表通过预定算法来 组装树形结构。 可选地,所述计算单元采用从下而上的方法递归汇总数据到每个父节点,直到递 归到根节点为止。 可选地,所述汇总数据至少包括大小、叶子节点数、按类型汇总数据中的至少一 个。 根据另一个方面,本专利技术提出了一种用于维护基于树形结构的目录关系的方法, 包括: 接收并拦截对树形结构的目录的变更请求; 设置变更标志以指示节点是否已变更,并记录与变更请求相关的变更信息; 以预定时间间隔来轮询变更标志; 当确定节点已变更时,根据变更信息来在对变更信息去重之后组装树形结构;以 及 根据组装的树形结构来生成目录树。 可选地,所述变更信息包括与所述变更请求相关的节点的ID或标识、父节点的ID 或标识、变更时间中的一个或多个。 可选地,在设置所述变更标记的同时继续执行主业务逻辑。 可选地,所述方法进一步包括:当确定节点未变更时,确定是否已超时未执行组装 树形结构任务;并且如果是的话,则自动调用组装树形结构任务。 可选地,根据变更信息来在对变更信息去重之后组装树形结构包括按时间倒序来 查询变更信息,并根据父节点ID或标识去重。 可选地,根据变更信息来在对变更信息去重之后组装树形结构进一步包括根据去 重后的变更信息来查询与变更信息对应的整个目录树。 可选地,根据变更信息来在对变更信息去重之后组装树形结构进一步包括根据所 查询出的节点列表通过预定算法来组装树形结构。 可选地,采用从下而上的方法递归汇总数据到每个父节点,直到递归到根节点为 止。 可选地,所述汇总数据至少包括大小、叶子节点数、按类型汇总数据中的至少一 个。【附图说明】 通过下面结合附图进行的描述,本专利技术一些示范性实施例的上述和其他方面、特 征和优点对于本领域技术人员来说将变得显而易见,其中:图1是根据本专利技术的一个实施例的用于维护基于树形结构的目录关系的系统的 不意图;以及 图2是根据本专利技术的一个实施例的用于维护基于树形结构的目录关系的方法的 流程图。【具体实施方式】 提供参考附图的下面描述以帮助全面理解本专利技术的示范性实施例。其包括各种细 节以助于理解,而应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识 到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同 样,为了清楚和简明,省略了对公知功能和结构的描述。图1是根据本专利技术的一个实施例的用于维护基于树形结构的目录关系的系统的 框图。 如图1中所示,根据本专利技术的用于维护基于树形结构的目录关系的系统包括变更 检测单元110、轮询任务单元120、查询及树组装单元130、计算单元140。 变更检测单元110用于接收来自外部或内部的变更请求,并根据变更请当前第1页1 2 本文档来自技高网...

【技术保护点】
一种用于维护基于树形结构的目录关系的系统,包括:变更检测单元,用于接收来自外部或内部的变更请求,并根据变更请求来设置变更标志和记录与变更请求相关的变更信息;轮询任务单元,用于以预定时间间隔来轮询变更标志;查询及树组装单元,用于根据变更信息来在对变更信息去重之后组装树形结构;以及计算单元,用于根据所述查询及树组装单元组装的树形结构来生成目录树。
【技术特征摘要】
【专利技术属性】
技术研发人员:谭龙,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。