CN110798332B - 用于搜索目录访问组的方法和系统 - Google Patents

用于搜索目录访问组的方法和系统 Download PDF

Info

Publication number
CN110798332B
CN110798332B CN201810878255.6A CN201810878255A CN110798332B CN 110798332 B CN110798332 B CN 110798332B CN 201810878255 A CN201810878255 A CN 201810878255A CN 110798332 B CN110798332 B CN 110798332B
Authority
CN
China
Prior art keywords
node
disjoint
data
disjoint subsets
rank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810878255.6A
Other languages
English (en)
Other versions
CN110798332A (zh
Inventor
黄一帆
刘敏
王韧
王晓岚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810878255.6A priority Critical patent/CN110798332B/zh
Priority to US16/118,133 priority patent/US11500873B2/en
Publication of CN110798332A publication Critical patent/CN110798332A/zh
Application granted granted Critical
Publication of CN110798332B publication Critical patent/CN110798332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于搜索目录访问组的方法和系统。确定与登录用户相关联的组集合。将该组集合划分成一个或多个不相交子集,其中各个不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示。针对各个不相交子集,对不相交子集进行路径压缩以使表示不相交子集的数据表示的结构变平。将该数据表示高速缓存到数据库高速缓存。

Description

用于搜索目录访问组的方法和系统
技术领域
本发明的实施例通常涉及访问目录服务中的信息。更特别地,本发明的实施例涉及用于搜索目录访问组的方法和系统。
背景技术
目录服务提供通过目录访问协议(DAP)识别用户、组、装置和其它对象以及它们的关系的能力。这种DAP的更简单版本被称为通常是本领域普通技术人员公知的轻量级目录访问协议(LDAP)。搜索产品通常利用来自其LDAP服务器的用户,并且根据直接分配至这些用户或这些用户的祖先组的角色来对这些用户进行授权。例如,如果用户属于组A、而组A属于组B,则向组B分配角色隐含地将该角色授予至属于组A和B的所有用户。因此,使LDAP服务器作为用户储存库可能是有益的,因为LDAP服务器可以基于组和目录层级结构来进行用户角色管理。
目前,具有层级结构复杂的大型LDAP储存库的公司针对特定系统在搜索用户以及其所有祖先组以确定其角色方面效率低。例如,该搜索可能会创建发送至LDAP服务器的大量LDAP查询,由此增加了该服务器的负担。LDAP查询的递归深度也是不可预测的。例如,中间结果未被高速缓存(cache)以供将来使用,因此LDAP探索每次都从头开始。如此,在目录服务大且复杂而导致搜索最终超时的情况下,用户体验将会降低。
为了更好地阐明这一点,现在参考示出目录服务中的数据样本的图1A,其中该数据样本包括通用名、类型(例如,用户或组)、直接组和分配角色等。可以向各用户或组(例如,“张三”、“团队1”)分配角色(例如,“角色1”、“角色3”)。然而,在现实世界中,数据量大得多,并且用户和组之间的关系复杂得多。图1A仅示出用于演示目的的小数据样本。继续参考图1A所示的数据样本,该数据可被假设为:(i)所有的用户和组都来自于同一目录,因此该理论可以应用于多个目录而不会互相干扰;以及(ii)服务集标识符(SSID)在同一目录中是全局唯一的。
在传统的授权工作流中,递归地查询当前用户的父组(以及随后的祖父和曾祖父),直到找到根节点为止。在遍历这些组时,组合这些组的所有分配角色并且确定用户的特定角色。更详细地,参考示出用于探索目录服务对象的传统方法的图1B。如图所示,在块101中,将表示当前登录用户的LDAP对象作为搜索算法(例如,广度优先搜索)的起始节点放入队列中。由于将角色直接分配至用户,因此用户也可被添加到搜索结果集合。在块102中,判断队列是否为空。如果队列为空,则可以判断为遍历了每个相关对象。否则,在块103中,可以从队列中一次轮询一个对象。在块104中,生成LDAP查询以请求与所轮询的对象(即,用户)相关联的直接组。在块105中,获得对象列表(例如,父组),并且来自该列表的对象(在这些对象不存在于队列或搜索结果中的情况下)被放入队列和搜索结果集合中。如果所轮询的对象不与任何直接组关联,则该对象被视为根节点并且列表将为空。在块106中,对于搜索结果集合中的每个对象(例如,参见图1C),可以提取分配至该对象的角色,因而可以针对所轮询的对象(即,用户)确定角色的组合列表。
用于探索用户组(或目录服务对象)的上述传统技术是简单直接的。然而,这会带来对用户体验至关重要的一系列问题,并且甚至可能会由于不可接受的响应时间而阻碍业务操作。例如,这些问题可以包括但不限于:(i)从用户(或对象)到根节点(或组)的不可避免的遍历,并且每当对用户进行授权时重复该遍历;(ii)用户所属的组的数量对于大公司而言可能大;(iii)根组的深度(即,表示从根组到用户要遍历的路径的长度的深度)对于具有复杂组织的业务而言大;(iv)授权过程是同步的,因而用户需要等待这种同步完成;以及(v)由于web服务器通常具有与客户端侧和服务器侧这两者有关的超时设置,因此不允许长时间运行占用web线程的进程,因为这些进程可能会影响吞吐量。
发明内容
根据本发明的一个方面,一种用于维护数据库高速缓存的计算机实现的方法,所述方法包括:确定与登录用户相关联的组集合;将所述组集合划分成一个或多个不相交子集,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及针对各所述不相交子集,对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示的结构变平;以及将该数据表示高速缓存到所述数据库高速缓存。
根据本发明的另一方面,一种设备,包括:用于确定与登录用户相关联的组集合的部件;用于将所述组集合划分成一个或多个不相交子集的部件,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及用于针对各所述不相交子集、对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示的结构变平的部件;以及用于将该数据表示高速缓存到所述数据库高速缓存的部件。
根据本发明的另一方面,一种数据处理系统,包括:处理器;以及存储器,其连接至所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器进行操作,所述操作包括:确定与登录用户相关联的组集合;将所述组集合划分成一个或多个不相交子集,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及针对各所述不相交子集,对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示变平的结构;以及将该数据表示高速缓存到所述数据库高速缓存。
附图说明
本发明的实施例通过示例而非限制的方式在附图中示出,其中在附图中,相同的附图标记表示相似的元件。
图1A是示出目录服务中的数据样本的图。
图1B是示出用于探索目录服务对象的传统方法的流程图。
图1C是示出通过调用传统方法得到的搜索结果集合的图。
图2是示出根据一个实施例的目录服务系统的示例的框图。
图3A~3C是示出根据一个实施例的存储在目录中的组集合的并查集(unionfind)和路径压缩的示例的数据表示。
图4A~4D是示出根据一个实施例的高速缓存构建的示例的图。
图5A~5C是示出根据一个实施例的合并节点和排位(ranking)节点的示例的图。
图6是示出根据一个实施例的为了重新评估图而可以采取的多个动作的图。
图7是示出根据一个实施例的高速缓存查询的示例的图。
图8是示出根据一个实施例的响应于高速缓存查询的返回值的示例的图。
图9是示出根据一个实施例的另一高速缓存查询的示例的图。
图10是示出根据一个实施例的响应于另一高速缓存查询的返回值的示例的图。
图11是根据一个实施例的用于维护数据库高速缓存的方法的流程图。
图12是示出根据一个实施例的数据处理系统的框图。
具体实施方式
将参考以下论述的细节来说明本发明的各种实施例和方面,并且附图将例示各种实施例。以下的描述和附图是对本发明的例示,而不应被解释为限制本发明。描述了许多具体细节以提供对本发明的各种实施例的全面理解。然而,在某些实例下,为了提供本发明的实施例的简要论述,没有描述公知的或传统的细节。
说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可以包括在本发明的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定全部指代同一实施例。随机访问是指在读/写输入/输出操作期间至少一次向文件的随机偏移进行访问(读/写)。
根据一个实施例,确定与登录用户相关联的组集合;将所述组集合划分成一个或多个不相交子集,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及针对各所述不相交子集,对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示的结构变平;以及将该数据表示高速缓存到所述数据库高速缓存。
在一个实施例中,针对各所述不相交子集,通过向表示所述不相交子集的数据表示中所包括的各节点分配秩(rank)来对该节点进行排位,其中所述秩是从该节点到所述根节点的路径的数量。
在另一实施例中,针对各所述不相交子集,根据对所述不相交子集的更新来更新所述数据库高速缓存,其中所述更新包括:(i)从所述不相交子集中删除现有的组;(ii)在所述不相交子集内的组之间添加父子关系;或者(iii)删除所述不相交子集内的组之间的父子关系。
在又一实施例中,针对各所述不相交子集,根据所述更新来更新所述数据表示中所包括的各节点的秩。
在又一实施例中,为了更新各节点的秩,响应于判断为该节点的秩为零(0),将该节点从不相交子集中删除。
在另一实施例中,为了将组集合划分成一个或多个不相交子集,对该组集合进行并查集以获得一个或多个不相交子集。
在又一实施例中,为了将数据表示高速缓存到数据库高速缓存,将该数据表示单独地高速缓存到数据库高速缓存内所包括的单独的数据元素集合。
在又一实施例中,为了根据该更新来更新数据库高速缓存,根据所述更新来更新所述数据库高速缓存包括:(i)从作为根节点的第一节点起重新评估表示所述不相交子集的数据表示,并且通过降低排位来合并所述数据表示;(ii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过升高所述排位来合并所述数据表示;或者(iii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过降低所述排位来合并所述数据表示。
图2是示出根据一个实施例的目录服务系统的示例的框图。参考图2,系统200包括但不限于通过网络203通信地连接至目录服务器204的一个或多个客户端系统201~202。客户端201~202可以是任何类型的客户端,诸如主机或服务器、个人计算机(例如,台式机、膝上型电脑和平板电脑)、“瘦”客户端、个人数字助理(PDA)、支持Web的器具、移动电话(例如,智能电话)、或者可穿戴装置(例如,智能手表)等。可选地,客户端201~202中的任意客户端可以是向其它本地客户端提供存储的主存储系统(例如,本地数据中心),其中该主存储系统可以将内部所存储的内容定期地备份到备份存储系统(例如,灾难恢复站点或系统)。在一个实施例中,客户端201~202中的任意客户端可以是根据LDAP协议来发送请求(例如,LDAP查询)并接收响应(例如,目录服务搜索结果)的LDAP客户端。网络203可以是有线方式或无线方式的诸如以下等的任何类型的网络:局域网(LAN)、诸如因特网等的广域网(WAN)、光纤网络、存储网络、蜂窝网络、或它们的组合。客户端201~202可以在物理上接近或者可以在物理上彼此远离。
继续参考图2,目录服务器204可以包括连接至目录服务221和数据库高速缓存222的授权模块211,其中目录服务221和数据库高速缓存222也包括在目录服务器204中。目录服务器204可以包括或表示任何类型的服务器或者一个或多个服务器的集群(例如,LDAP服务器)。目录服务221可以存储、组织并提供对目录信息的访问,从而统一网络资源。也就是说,目录服务221可以是用于定位、管理、实施并组织项目和网络资源(其可被称为对象)的共享信息基础架构,其中这些网络资源可以包括用户、组、卷、文件夹、文件、打印机、装置、电话号码和其它对象。在一个实施例中,目录服务221可以定义网络的命名空间。命名空间可用于向各个对象分配名称(或标识符)。在一个实施例中,目录服务221可以存储、管理并提供对不同类型的多个目录(或目录树)中的目录信息的访问,其中各个目录是以层级结构(例如,根节点、中间节点或叶节点、父节点、子节点等)形成的。
授权模块211被配置为对(例如,来自操作LDAP客户端的用户的)用户登录进行授权,并且确定分配至该用户的一个或多个角色。例如,响应于用户登录,授权模块211可以与目录服务211进行通信,以遍历一个或多个目录并且定义如何识别目录中的与用户相关联的不同根组(或节点)。也就是说,授权模块211可以确定如何探索并存储与用户的组关系。在一个实施例中,授权模块211可以调用并查集(或不相交集合)算法以将与用户相关联的组集合划分成多个不相交(或非重叠)子集。授权模块211可以识别组的子集之间的连接,并且通过使每个组均指向根组来进行路径压缩以使组的目录(或目录树)的数据结构变平。然后,授权模块211可以基于路径压缩后的数据结构将组高速缓存到数据库高速缓存222(例如,结构化查询语言(SQL)数据库、Elasticsearch等)中。一旦构建了数据库高速缓存222,就可以对该数据库高速缓存222进行查询(例如,LDAP查询),从而授权并确定用户的一个或多个角色。
图3A~3C是示出根据一个实施例的存储在目录中的组集合的并查集和路径压缩的示例的数据表示(例如,图)。在一个实施例中,本文中以下所述的并查集和路径压缩技术可以由图2的授权模块211进行。
参考图3A,在用户登录时,可以接收用以请求与该用户相关联的一个或多个组的查询。响应于该查询,可以遍历目录服务221所管理的目录以找到或确定与用户相关联的组。例如,考虑(如前面所述的)图1A的数据样本,其中在该数据样本中存在四个组(例如,在“直接组”列下的“团队1”、“团队2”、“团队3”和“团队4”)。首先,如利用图3A的组301~304(也称为节点)所示,各个组可以是独立的而无任何连接,其中将组301~304分别标记为“团队1”、“团队2”、“团队3”和“团队4”。在对组301~304进行并查集时,(如图3B所示)可能在组301~304中找到直接连接和间接连接。并查集通常用于合并直接或间接连接的不相交的组集合。这种并查集可以提供用以添加新的数据元素(例如,组)集合、合并现有集合或者判断数据元素(例如,组)是否在同一集合中的近恒定时间(near constant time)操作。上述的并查集技术通常是本领域技术人员已知的。
继续参考图3B,组301可被视为根节点,因为组301是独立的并且没有经由边连接至另一组。在一个实施例中,组301也可被视为叶(或中间)节点,因为组301具有指向其自身的边。如图所示,组302具有指向组303的边,而组303具有指向组304的边。在这种情况下,组302可以是组303(父组)的子组,并且组303可以是组304(另一父组)的子组。因此,在图3B中,组302~303可被视为中间节点,而组304可被视为根节点,因为组304不具有指向另一节点的边。与组301相似,组304也可被视为中间节点,因为组304具有指向自身的边。
在进行了并查集之后,可以针对组(或节点)301~304以及它们的关联边调用并进行路径压缩算法。路径压缩通常也是本领域技术人员公知的。在进行了路径压缩之后,组301~304可以如图3C所示配置。如图3C所示,路径压缩生成两个单独的不相交的组集合,即作为各集合的根组的组301(“团队1”)和组304(“团队4”)。如进一步所示,组302~303这两者现在都具有直接指向组304的边。
在一个实施例中,在假定m个连接和n个元素的情况下,并查集的时间复杂度T在以下的范围内:
Figure BDA0001753838840000091
因此,时间复杂度为O(m log n)。
既然对组301~304进行了路径压缩以生成两个不相交的组集合,可以构建高速缓存。为了构建高速缓存,由于用户的分配角色与根组(例如,组301和304)相对应,因此高速缓存从根组开始。这是因为,由于相关组是根组的子项因而从根组开始探索是更加高效的。对于各根组(例如,组301或组304),可以构建单独的数据表示(例如,图),使得在构建或更新高速缓存时,根组不会互相干扰或影响。
因此,现在参考示出根据一个实施例的高速缓存构建的示例的图4A~4D,高速缓存(例如,图2的数据库高速缓存222)最初可以利用(如图1A所示)已被分配至角色“角色3”的组301(“团队1”)来构建。如果对组301进行查询(例如,LDAP查询),则将不存在与“团队1”相关联的子组。因而,根组301的最终图如图4A所示,其中组301独立存在并且具有指向自身的边。接着,由于组303(“团队3”)已被分配了角色“角色4”,因此可以构建组303(“团队3”)。如果对组303进行查询,则将找到组302(“团队2”)作为其子组。在进行了并查集和路径压缩之后,组303的图将按照图4B,其中组302具有指向组303的边,而组303具有指向自身的边。同样,由于组304(“团队4”)已被分配了角色“角色5”,因此可以使用组304(“团队4”)来构建高速缓存。如果对组304进行查询,则将找到组303作为其子组。递归地,还找到组302是组303的子项。在进行了并查集和路径压缩之后,组304的图将按照图4C,其中组302~303具有指向组304的边,而组304具有指向自身的边。
在一个实施例中,组301、303和304的图可以是采用数据元素集合的形式的高速缓存(例如,在数据库高速缓存222中),诸如具有“根SSID”列和“子SSID”列的表(如图4D所示)等。在另一实施例中,可以单独地对组301、303和304进行高速缓存,使得将各组高速缓存在单独的数据元素集合(例如,各表的一个组)中。因此,关于组304的图,如图4D所示,在表中存在三个记录。
由于默认存在固定数量的根组,因此与正常的并查集和路径压缩相比,n现在是与根节点有关的节点数,并且m=n。因此,该算法被优化为:
Figure BDA0001753838840000101
Figure BDA0001753838840000102
是与第i个根节点Ki有关的节点数量。
在一些实施例中,可能存在从根组(或节点)到子节点的多个路径。在这些情况下,可以计算秩并将该秩分配至节点的各边,其中该秩标识从该节点到其根节点的路径的数量。如此,较高排位(即,低秩值,诸如“1”等)可以指示到达根节点的路径的数量较少,而较低排位(即,较高秩值)可以指示到达根节点的路径的数量较多。现在参考图5A作为示例,假定将新的组505添加到LDAP,并且组505是组304(“团队4”)的直接子项和组302(“团队2”)的直接父项。如图所示,从组304到组302有两个路径。在这种情况下,可以在进行路径压缩时合并到达组302的两个路径。
因此,在对组304进行并查集和路径压缩的情况下,最终图可以如图5B所示配置。也就是说,各个组302、303和505具有指向组304的边,其中组304具有指向自身的边。由于(如前面所述)从根组304到达组302有两条路径,因此组302的排位可以为二(2),并且在图5C中示出应用了排位的最终高速缓存,其中向该表添加了“秩”列。通过对组进行排位,可以便于在发现对LDAP的改变时更新高速缓存。在一个实施例中,随着LDAP(即,前面描述的图)改变,由于到达根节点的路径的数量可能改变,因此排位也可能改变(例如,升高或降低)。在一个实施例中,如果节点的排位降低为零(0),则可以从高速缓存中删除该节点。
通常,LDAP拓扑结构(例如,前面所述的图)可以不时地改变(或更新)。因而,需要监视这些改变以相应地进行用以更新高速缓存的动作。可以通过根组的定期重新评估来进行监视,或者可以在各目录服务器(例如,LDAP服务器)上设置专用监视器。
在各种实施例中,由于不能在目录服务器上设置通知系统,因此可能需要通过定期重新评估根组并更新高速缓存来对高速缓存进行更新。在一个实施例中,为了重新评估根节点,可以应用(如前面在图4A~4D中所述的)高速缓存构建技术。为了加速整体性能,本发明的实施例可以进行以下操作:(i)从搜索系统提取所有的根节点;(ii)由于各图映射到仅一个根节点,因此针对各根节点进行并行评估;(iii)在重新评估之后,将新的图与数据库高速缓存中的以前的图进行比较,以减少对数据库高速缓存的更新次数;(iv)根据更新后的图来更新数据库高速缓存;以及(v)重新评估的间隔可以是可配置的,或者甚至可以根据根节点的数量和平均评估时间对重新评估的间隔进行智能控制。这样,无需针对所监视的各目录服务器设置专用监视器。
在一些实施例中,假定设置通知机制,则每当发生改变(或更新)时,都接收到该改变并且生成对数据库高速缓存的更新。这些事件可以包括:(i)从LDAP中删除现有的组A;(ii)在组A和组B之间添加父子关系(A作为父);以及/或者(iii)删除组A和组B之间的父子关系(A作为父)。由于仅高速缓存了组及其关联关系,因此可以忽略用户相关的事件。因此,在图6中在“要采取的动作”列下示出一旦发生上述三个事件中的任何事件则要采取的动作。这样,可以实时地更新数据。
在一个实施例中,在构建高速缓存之后,可以通过对高速缓存进行查询来向用户进行授权。例如,图1A的数据样本中的用户“周八”可能不具有直接分配至他/她的角色,但他/她属于组303(“团队3”)。可以发送高速缓存查询(例如,LDAP查询)以在高速缓存内找到“周八”属于的组。在这种情景下,将找到组303。因此,这对LDAP进行查询时仅需要O(1)时间。然后,组303(“团队3”)的SSID“9”可以用作用以对高速缓存进行查询的查询条件。作为示例,如果高速缓存是在Elasticsearch中构建的,则可以如图7所示调用高速缓存查询,并且在图8中示出返回值。该操作也在O(1)时间内进行。由于针对各根组生成单独的数据表示(例如,图),则尽管查询跨不同的图,但返回值不包含根节点的任何重复。如此,不需要对返回值进行数据聚合。
在一个实施例中,可以从返回值获得指示“周八”属于组303(“团队3”)和组304(“团队4”)的根组的列表。因此,可以通过在角色表(例如,“分配角色”列)中查询属于组303~304的角色来获得分配至“周八”的角色(例如,“角色4”、“角色5”)。该查询如图9所示。再次地,这种查询需要O(1)时间,并且返回值如图10所示。
图11是示出根据一个实施例的用于维护数据库高速缓存的方法的流程图。处理1100可以由处理逻辑进行,其中该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,其体现在非暂时性计算机可读介质上)或它们的组合。例如,处理1100可以由目录服务器204(例如,图2的授权模块211)进行。
参考图11,在块1101中,处理逻辑确定与登录用户相关联的组集合。在块1102中,处理逻辑将该组集合划分成一个或多个不相交子集,其中各个不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示。在块1103中,对于各个不相交子集,处理逻辑对不相交子集进行路径压缩以使表示不相交子集的数据表示的结构变平。在块1104中,处理逻辑将数据表示高速缓存到数据库高速缓存(例如,图2的数据库高速缓存222)。
注意,如以上所示并说明的组件(例如,目录服务器204)中的一部分或全部可以用软件、硬件或它们的组合来实现。例如,这些组件可以被实现为安装并存储在永久性存储装置中的软件,其中该软件可以由处理器(未示出)加载在存储器中并在存储器中执行,以执行在整个本申请中描述的处理或操作。可选地,这些组件可以被实现为被编程或嵌入到诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等的专用硬件中的可执行代码,其中该可执行代码可以从应用程序经由相应的驱动器和/或操作系统来访问。此外,这些组件可以被实现为处理器中的特定硬件逻辑或作为由软件组件经由一个或多个特定指令可访问的指令集的一部分的处理器核。
图12是示出可用于一个实施例的数据处理系统的示例的框图。例如,系统1500可以表示进行上述任何处理或方法的上述任何数据处理系统。系统1500可以包括许多不同的组件。在一个实施例中,系统1500可被实现为客户端201~202或目录服务器204的一部分。这些组件可以被实现为集成电路(IC)、集成电路(IC)的一部分、分立电子装置、或者适用于计算机系统的诸如主板或附加卡等的电路板的其它模块,或者否则被实现为并入在计算机系统的机箱内的组件。还注意,系统1500旨在示出计算机系统的许多组件的高级视图。然而,应当理解,在某些实现中可能存在附加组件,此外,在其它实现中可能出现所示组件的不同配置。系统1500可以表示台式机、膝上型计算机、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(PDA)、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或者它们的组合。此外,尽管仅示出单个机器或系统,但术语“机器”或“系统”还应被认为包括用于单独地或联合地执行一组(或多组)指令以进行这里论述的方法中的任一个或多个方法的机器或系统的任何集合。
在一个实施例中,系统1500包括经由总线或互连线1510的处理器1501、存储器1503和装置1505~1508。处理器1501可以表示内部包括单个处理器核或多个处理器核的单个处理器或多个处理器。处理器1501可以表示诸如微处理器或中央处理单元(CPU)等的一个或多个通用处理器。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其它指令集的处理器、或者实现指令集的组合的处理器。处理器1501还可以是诸如以下等的一个或多个专用处理器:专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、加密处理器、辅助处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。
处理器1501(其可以是诸如超低电压处理器等的低功率多核处理器插槽)可用作用于与系统的各种组件进行通信的主处理单元和中央集线器。这种处理器可被实现为片上系统(SoC)。处理器1501被配置为执行用于进行这里论述的操作和步骤的指令。系统1500还可以包括与可选图形子系统1504进行通信的图形接口,其中该可选图形子系统1504可以包括显示控制器、图形处理器和/或显示装置。
处理器1501可以与存储器1503进行通信,其中该存储器1503在一个实施例中可以经由多个存储器装置来实现以提供给定量的系统内存。存储器1503可以包括诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储装置等的一个或多个易失性存储(或存储器)装置。存储器1503可以存储包括由处理器1501或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动器、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可被加载在存储器1503中并由处理器1501执行。操作系统可以是任何类型的操作系统,例如来自
Figure BDA0001753838840000141
Figure BDA0001753838840000142
操作系统、来自Apple的Mac
Figure BDA0001753838840000143
来自
Figure BDA0001753838840000151
Figure BDA0001753838840000152
或者诸如VxWorks等的其它实时或嵌入式操作系统等。
系统1500还可以包括诸如装置1505~1508等的IO装置,其中这些IO装置包括网络接口装置1505、可选输入装置1506以及其它的可选IO装置1507。网络接口装置1505可以包括无线收发器和/或网络接口卡(NIC)。无线收发器可以是WiFi收发器、红外收发器、Bluetooth(蓝牙)收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其它射频(RF)收发器、或者它们的组合。NIC可以是以太网卡。
输入装置1506可以包括鼠标、触摸垫、触敏屏幕(其可以与显示装置1504一体化)、诸如触控笔等的指针装置、以及/或者键盘(例如,物理键盘或者显示为触敏屏幕的一部分的虚拟键盘)。例如,输入装置1506可以包括连接至触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可以例如使用多个触敏度技术(其包括但不限于电容技术、电阻技术、红外技术和表面声波技术)、以及其它接近传感器阵列或者用于确定与触摸屏的一个或多个接触点的其它元件中的任何来检测接触和移动或它们的中断。
IO装置1507可以包括音频装置。音频装置可以包括扬声器和/或麦克风以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能等。其它IO装置1507还可以包括通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、传感器(例如,诸如加速计、陀螺仪、磁力计、光传感器、指南针、接近传感器等的运动传感器)、或者它们的组合。装置1507还可以包括摄像处理子系统(例如,照相机),其中该摄像处理子系统可以包括诸如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器等的用于促进诸如记录照相和视频剪辑等的照相机功能的光学传感器。根据系统1500的特定结构或设计,某些传感器可以经由传感器集线器(未示出)连接至互连线1510,而诸如键盘或热传感器等的其它装置可以由嵌入式控制器(未示出)控制。
为了提供诸如数据、应用以及一个或多个操作系统等的信息的永久存储,大容量存储器(未示出)也可以连接至处理器1501。在各种实施例中,为了使得能够实现更薄更轻的系统设计以及为了提高系统响应性,可以经由固态装置(SSD)来实现该大容量存储器。然而,在其它实施例中,大容量存储器可以主要使用具有较少量的SSD存储器用作SSD高速缓存的硬盘驱动器(HDD)来实现,使得能够实现断电事件期间的上下文状态和其它这种信息的非易失性存储,由此在重新启动系统活动期间可以发生快速上电。另外,闪存装置可以例如经由串行外设接口(SPI)连接至处理器1501。该闪存装置可以提供包括基本输入/输出软件(BIOS)的系统软件以及系统的其它固件的非易失性存储。
存储装置1508可以包括计算机可访问存储介质1509(还已知为机器可读存储介质或计算机可读介质),其中在该计算机可访问存储介质1509上,存储有体现这里所述的方法或功能中的任一个或多个的一组或多组指令或软件(例如,处理模块、单元和/或逻辑1528)。如上所述,处理模块/单元/逻辑1528可以表示上述的任何组件,例如存储服务逻辑、去重引擎等。处理模块/单元/逻辑1528在由数据处理系统1500、存储器1503和处理器1501执行期间,也可以完全地或至少部分地驻留在存储器1503内和/或处理器1501内,从而还构成机器可访问存储介质。处理模块/单元/逻辑1528还可以经由网络接口装置1505通过网络来发送或接收。
计算机可读存储介质1509也可用于永久地存储上述的一些软件功能。尽管计算机可读存储介质1509在典型实施例中被示出为单个介质,但术语“计算机可读存储介质”应被认为包括用于存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库以及/或者关联的高速缓存器和服务器)。术语“计算机可读存储介质”还应被认为包括能够存储或编码由机器执行的一组指令并且使机器进行本发明的方法中的任何一个或多个方法的任何介质。相应地,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、以及光学和磁性介质、或者任何其它非暂时性机器可读介质。
这里描述的处理模块/单元/逻辑1528、组件和其它特征可被实现为分立的硬件组件、或者集成在诸如ASICS、FPGA、DSP或相似装置等的硬件组件的功能中。另外,处理模块/单元/逻辑1528可被实现为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑1528可以采用硬件装置和软件组件的任何组合来实现。
注意,尽管系统1500例示有数据处理系统的各种组件,但这并不意图表示使这些组件互连的任何特定架构或方式;因为这些细节与本发明的实施例并无密切关系。还应当理解,网络计算机、手持式计算机、移动电话、服务器、以及/或者具有更少的组件或可能更多的组件的其它数据处理系统也可用于本发明的实施例。
前面的详细说明的一些部分已从针对计算机存储器内的数据位的操作的算法和符号表示方面进行了呈现。这些算法描述和表示是数据处理领域的技术人员为了将他们工作的实质最有效地传达给本领域其它技术人员所使用的方式。算法在这里通常被认为是产生期望结果的自洽的操作序列。这些操作是需要对物理量进行物理操纵的操作。
然而,应当牢记,所有这些以及类似的术语都应与适当的物理量相关联,并且仅仅是应用于这些物理量的方便标签。除非另外特别说明,否则从以上论述显而易见,应当理解,在整个说明书中,利用诸如在所附权利要求书中阐述的术语等的术语的论述是指计算机系统或类似的电子计算装置的如下动作和处理:将计算机系统的寄存器和存储器内的被表示为物理(电子)量的数据操纵并变换成该计算机系统存储器或寄存器或者其它这种信息存储、传输或显示装置内的类似地被表示为物理量的其它数据。
本发明的实施例还涉及用于进行这里的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪速存储器装置)。
在前面的附图中所示的处理或方法可以通过包括硬件(例如,电路、专用逻辑等)、软件(例如,其在非暂时性计算机可读介质上体现)或这两者的组合的处理逻辑来进行。尽管以上根据一些顺序操作描述了处理或方法,但应当理解,所描述的操作中的一些操作可以按不同的顺序进行。此外,一些操作可以并行而不是顺次进行。
没有参考任何特定的编程语言描述本发明的实施例。应当理解,可以使用各种编程语言来实现这里所述的本发明的实施例的教导。
在前述的说明书中,已经参考本发明的特定典型实施例描述了本发明的实施例。显而易见,可以在没有背离如在所附权利要求书中阐述的本发明的更广泛的精神和范围的情况下对本发明进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

Claims (24)

1.一种用于维护数据库高速缓存的计算机实现的方法,所述方法包括:
确定与登录用户相关联的组集合;
将所述组集合划分成一个或多个不相交子集,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及
针对各所述不相交子集,
对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示的结构变平;以及
将该数据表示高速缓存到所述数据库高速缓存。
2.根据权利要求1所述的方法,其中,还包括:
针对各所述不相交子集,通过向表示所述不相交子集的数据表示中所包括的各节点分配秩来对该节点进行排位,其中所述秩是从该节点到所述根节点的路径的数量。
3.根据权利要求2所述的方法,其中,还包括:
针对各所述不相交子集,根据对所述不相交子集的更新来更新所述数据库高速缓存,其中,对所述不相交子集的更新包括:(i)从所述不相交子集中删除现有的组;(ii)在所述不相交子集内的组之间添加父子关系;或者(iii)删除所述不相交子集内的组之间的父子关系。
4.根据权利要求3所述的方法,其中,还包括:
针对各所述不相交子集,根据对所述不相交子集的更新来更新所述数据表示中所包括的各节点的秩。
5.根据权利要求4所述的方法,其中,更新各节点的秩包括:响应于判断为该节点的秩是零(0),将该节点从所述不相交子集中删除。
6.根据权利要求1所述的方法,其中,将所述组集合划分成所述一个或多个不相交子集包括:对所述组集合进行并查集,以获得所述一个或多个不相交子集。
7.根据权利要求1所述的方法,其中,将所述数据表示高速缓存到所述数据库高速缓存包括:将所述数据表示单独地高速缓存到所述数据库高速缓存内所包括的单独的数据元素集合。
8.根据权利要求3所述的方法,其中,根据对所述不相交子集的更新来更新所述数据库高速缓存包括:(i)从作为根节点的第一节点起重新评估表示所述不相交子集的数据表示,并且通过降低排位来合并所述数据表示;(ii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过升高所述排位来合并所述数据表示;或者(iii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过降低所述排位来合并所述数据表示。
9.一种数据处理设备,包括:
用于确定与登录用户相关联的组集合的部件;
用于将所述组集合划分成一个或多个不相交子集的部件,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及
用于针对各所述不相交子集、对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示的结构变平的部件;以及
用于将该数据表示高速缓存到数据库高速缓存的部件。
10.根据权利要求9所述的数据处理设备,其中,还包括:
用于针对各所述不相交子集、通过向表示所述不相交子集的数据表示中所包括的各节点分配秩来对该节点进行排位的部件,其中所述秩是从该节点到所述根节点的路径的数量。
11.根据权利要求10所述的数据处理设备,其中,还包括:
用于针对各所述不相交子集、根据对所述不相交子集的更新来更新所述数据库高速缓存的部件,其中,对所述不相交子集的更新包括:(i)从所述不相交子集中删除现有的组;(ii)在所述不相交子集内的组之间添加父子关系;或者(iii)删除所述不相交子集内的组之间的父子关系。
12.根据权利要求11所述的数据处理设备,其中,还包括:
用于针对各所述不相交子集、根据对所述不相交子集的更新来更新所述数据表示中所包括的各节点的秩的部件。
13.根据权利要求12所述的数据处理设备,其中,用于更新各节点的秩的部件包括:用于响应于判断为该节点的秩是零(0)、将该节点从所述不相交子集中删除的部件。
14.根据权利要求9所述的数据处理设备,其中,用于将所述组集合划分成所述一个或多个不相交子集的部件包括:用于对所述组集合进行并查集以获得所述一个或多个不相交子集的部件。
15.根据权利要求9所述的数据处理设备,其中,用于将所述数据表示高速缓存到所述数据库高速缓存的部件包括:用于将所述数据表示单独地高速缓存到所述数据库高速缓存内所包括的单独的数据元素集合的部件。
16.根据权利要求11所述的数据处理设备,其中,用于根据对所述不相交子集的更新来更新所述数据库高速缓存的部件包括:(i)用于从作为根节点的第一节点起重新评估表示所述不相交子集的数据表示并且通过降低排位来合并所述数据表示的部件;(ii)用于在所述第一节点在所述数据库高速缓存内的情况下、从作为根节点的所述第一节点开始重新评估所述数据表示并且通过升高所述排位来合并所述数据表示的部件;或者(iii)用于在所述第一节点在所述数据库高速缓存内的情况下、从作为根节点的所述第一节点开始重新评估所述数据表示并且通过降低所述排位来合并所述数据表示的部件。
17.一种数据处理系统,包括:
处理器;以及
存储器,其连接至所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器进行操作,所述操作包括:
确定与登录用户相关联的组集合;
将所述组集合划分成一个或多个不相交子集,其中各所述不相交子集由包括根节点以及一个或多个中间节点的数据表示来表示;以及
针对各所述不相交子集,
对所述不相交子集进行路径压缩以使表示所述不相交子集的数据表示变平的结构;以及
将该数据表示高速缓存到数据库高速缓存。
18.根据权利要求17所述的数据处理系统,其中,所述操作还包括:
针对各所述不相交子集,通过向表示所述不相交子集的数据表示中所包括的各节点分配秩来对该节点进行排位,其中所述秩是从该节点到所述根节点的路径的数量。
19.根据权利要求18所述的数据处理系统,其中,所述操作还包括:
针对各所述不相交子集,根据对所述不相交子集的更新来更新所述数据库高速缓存,其中,对所述不相交子集的更新包括:(i)从所述不相交子集中删除现有的组;(ii)在所述不相交子集内的组之间添加父子关系;或者(iii)删除所述不相交子集内的组之间的父子关系。
20.根据权利要求19所述的数据处理系统,其中,所述操作还包括:针对各所述不相交子集,根据对所述不相交子集的更新来更新所述数据表示中所包括的各节点的秩。
21.根据权利要求20所述的数据处理系统,其中,更新各节点的秩包括:响应于判断为该节点的秩是零(0),将该节点从所述不相交子集中删除。
22.根据权利要求17所述的数据处理系统,其中,将所述组集合划分成所述一个或多个不相交子集包括:对所述组集合进行并查集,以获得所述一个或多个不相交子集。
23.根据权利要求17所述的数据处理系统,其中,将所述数据表示高速缓存到所述数据库高速缓存包括:将所述数据表示单独地高速缓存到所述数据库高速缓存内所包括的单独的数据元素集合。
24.根据权利要求19所述的数据处理系统,其中,根据对所述不相交子集的更新来更新所述数据库高速缓存包括:(i)从作为根节点的第一节点起重新评估表示所述不相交子集的数据表示,并且通过降低排位来合并所述数据表示;(ii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过升高所述排位来合并所述数据表示;或者(iii)在所述第一节点在所述数据库高速缓存内的情况下,从作为根节点的所述第一节点开始重新评估所述数据表示,并且通过降低所述排位来合并所述数据表示。
CN201810878255.6A 2018-08-03 2018-08-03 用于搜索目录访问组的方法和系统 Active CN110798332B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810878255.6A CN110798332B (zh) 2018-08-03 2018-08-03 用于搜索目录访问组的方法和系统
US16/118,133 US11500873B2 (en) 2018-08-03 2018-08-30 Methods and systems for searching directory access groups

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810878255.6A CN110798332B (zh) 2018-08-03 2018-08-03 用于搜索目录访问组的方法和系统

Publications (2)

Publication Number Publication Date
CN110798332A CN110798332A (zh) 2020-02-14
CN110798332B true CN110798332B (zh) 2022-09-06

Family

ID=69227277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810878255.6A Active CN110798332B (zh) 2018-08-03 2018-08-03 用于搜索目录访问组的方法和系统

Country Status (2)

Country Link
US (1) US11500873B2 (zh)
CN (1) CN110798332B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972169B2 (en) * 2017-11-06 2021-04-06 Lg Electronics Inc. Method for feedback of channel quality information in wireless communication system, and device for same
US11797318B1 (en) * 2018-11-28 2023-10-24 Allscripts Software, Llc Apparatus, system and method for workflow processing in a medical computer system
US11606257B2 (en) * 2019-01-09 2023-03-14 Vmware, Inc. Topology-aware control information dissemination in software-defined networking environments
US20200250161A1 (en) * 2019-01-31 2020-08-06 Walmart Apollo, Llc Method and apparatus for determining associated data linkages

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1610877A (zh) * 2001-11-01 2005-04-27 弗里塞恩公司 高速非并发控制数据库
CN101908998A (zh) * 2009-06-03 2010-12-08 华为技术有限公司 路径计算方法、路径计算单元及路径计算系统
CN103281211A (zh) * 2013-06-13 2013-09-04 黑龙江工程学院 大规模网络节点分组管理系统及管理方法
US8868506B1 (en) * 2010-06-17 2014-10-21 Evolphin Software, Inc. Method and apparatus for digital asset management
CN104331883A (zh) * 2014-10-28 2015-02-04 华南理工大学 一种基于非对称逆布局模型的图像边界提取方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950820B2 (en) 2001-02-23 2005-09-27 International Business Machines Corporation Maintaining consistency of a global resource in a distributed peer process environment
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US20060241868A1 (en) * 2005-04-08 2006-10-26 Affymetrix, Inc. System, method, and computer product for simplified instrument control and file management
US8248925B2 (en) * 2009-09-08 2012-08-21 Rockstar Bidco, LP Method and apparatus for selecting between multiple equal cost paths
US9112833B2 (en) * 2013-05-01 2015-08-18 Red Hat, Inc. Compression of content paths in a digital certificate
US9798764B2 (en) * 2013-12-20 2017-10-24 Salesforce.Com, Inc. Identifying recurring sequences of user interactions with an application
US20180032930A1 (en) * 2015-10-07 2018-02-01 0934781 B.C. Ltd System and method to Generate Queries for a Business Database
US20180024989A1 (en) * 2016-07-19 2018-01-25 International Business Machines Corporation Automated building and sequencing of a storyline and scenes, or sections, included therein
US11347752B2 (en) * 2018-07-23 2022-05-31 Apple Inc. Personalized user feed based on monitored activities

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1610877A (zh) * 2001-11-01 2005-04-27 弗里塞恩公司 高速非并发控制数据库
CN101908998A (zh) * 2009-06-03 2010-12-08 华为技术有限公司 路径计算方法、路径计算单元及路径计算系统
US8868506B1 (en) * 2010-06-17 2014-10-21 Evolphin Software, Inc. Method and apparatus for digital asset management
CN103281211A (zh) * 2013-06-13 2013-09-04 黑龙江工程学院 大规模网络节点分组管理系统及管理方法
CN104331883A (zh) * 2014-10-28 2015-02-04 华南理工大学 一种基于非对称逆布局模型的图像边界提取方法

Also Published As

Publication number Publication date
US11500873B2 (en) 2022-11-15
US20200042609A1 (en) 2020-02-06
CN110798332A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN110798332B (zh) 用于搜索目录访问组的方法和系统
US9607331B2 (en) Near-duplicate filtering in search engine result page of an online shopping system
KR102434690B1 (ko) 계층화된 그래프 데이터 구조
JP6188732B2 (ja) マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム
US8224804B2 (en) Indexing of partitioned external data sources
CN107273392B (zh) 用于搜索图像的计算机实现方法、装置及数据处理系统
KR20120123519A (ko) 사용자 콘텐츠 피드를 지원하기 위한 메커니즘
US9754015B2 (en) Feature rich view of an entity subgraph
Hua et al. FAST: Near real-time searchable data analytics for the cloud
US10929445B2 (en) Distributed search framework with virtual indexing
US11307984B2 (en) Optimized sorting of variable-length records
CN114244595A (zh) 权限信息的获取方法、装置、计算机设备及存储介质
US20200110838A1 (en) Intelligent visualization of unstructed data in column-oriented data tables
Mehmood et al. Distributed real-time ETL architecture for unstructured big data
WO2017107130A1 (zh) 数据查询方法和数据库系统
CN110291515B (zh) 计算系统中的分布式索引搜索
US11687513B2 (en) Virtual data source manager of data virtualization-based architecture
US11960616B2 (en) Virtual data sources of data virtualization-based architecture
US11263026B2 (en) Software plugins of data virtualization-based architecture
US12008041B2 (en) Shared cache for multiple index services in nonrelational databases
US20220075830A1 (en) Resumable ordered recursive traversal of an unordered directory tree
JP6871395B2 (ja) クロスネットワークイベントアトリビューションを提供するためのシステムおよび方法
US10664442B1 (en) Method and system for data consistency verification in a storage system
CN110727672A (zh) 数据映射关系查询方法、装置、电子设备及可读介质
US11803568B1 (en) Replicating changes from a database to a destination and modifying replication capacity

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant