Directory Access Group Search via Partitioning and Path Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large LDAP repositories with complex hierarchies face inefficiencies in searching for users and their ancestor groups, leading to increased LDAP queries, unpredictable recursion depth, and degraded user experience due to synchronization and timeout issues.

Innovation Solution

Implementing a directory service system that partitions user groups into disjoint subsets, applies path compression, and caches data representations to reduce query complexity and improve authorization efficiency by flattening the group structure and ranking nodes, allowing for faster role determination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If recursive LDAP queries are performed to search for users and ancestor groups in large complex directories, then complete role information can be obtained, but the number of LDAP queries increases and search time becomes unpredictable

Engineering Contradiction:
Improverole information completenessVSAvoidsearch time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-computes and stores the transitive closure of group memberships (ancestor groups) for each user in a cache before authorization requests are made. This preliminary action eliminates the need for recursive LDAP queries during actual authorization, providing complete role information instantly without time-consuming searches.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system anticipates future authorization requests by pre-loading group hierarchy data into memory cache. This cushioning mechanism ensures that when authorization requests arrive, the data is already available, preventing timeout issues and performance degradation that would occur with real-time recursive queries.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Reliability

If recursive LDAP queries are performed to determine user roles, then accurate authorization can be achieved, but the recursion depth becomes unpredictable and may cause timeouts

Engineering Contradiction:
Improveauthorization accuracyVSAvoidrecursion depth
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system pre-computes the complete ancestor group hierarchy for each user before authorization requests are made. By calculating the transitive closure of group memberships in advance and storing it in cache, the system eliminates unpredictable recursion depth during actual authorization operations, ensuring both accuracy and performance.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If LDAP exploration starts from the beginning every time without caching, then data freshness is maintained, but user experience degrades due to repeated searches

Engineering Contradiction:
Improvedata freshnessVSAvoiduser experience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system pre-computes and caches group hierarchy data in advance, making it immediately available for authorization requests. This preliminary computation eliminates the need to start LDAP exploration from the beginning each time, dramatically improving user experience while maintaining data accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of group hierarchy data and stores them in a cache structure. These cached copies allow rapid retrieval during authorization requests without querying the LDAP server, improving response time while the system periodically refreshes the cache to maintain data freshness.

Inventive Principle:
Principle #26Copying

4Reliability

If synchronous authorization processes are used to ensure accuracy, then role determination is complete, but system throughput decreases due to thread occupation

Engineering Contradiction:
Improverole determination completenessVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system pre-computes authorization data and caches it before requests arrive. When authorization requests are made, the system retrieves pre-computed results from cache rather than performing synchronous LDAP queries, maintaining complete role determination while dramatically improving system throughput by eliminating thread occupation during data retrieval.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11500873B2Methods and systems for searching directory access groups
Publication Date: 2022.11.15 EMC IP HLDG CO LLC
  • US11500873B2 patent drawing
  • US11500873B2 patent drawing
  • US11500873B2 patent drawing

AI summary

Methods and systems for searching directory access groups are disclosed. A set of groups associated with a logon user is determined. The set of groups is partitioned into one or more disjoint subsets, wherein each of the disjoint subsets is represented by a data representation including a root node and one or more intermediate nodes. For each of the disjoint subsets, the disjoint subset is path compressed to flatten a structure of the data representation representing the disjoint subset. The data representation is cached to a database cache.