DirXML Query Minimization via Result Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

DirXML Script policies in metadirectory engines like Novell Identity Manager experience slow synchronization performance due to excessive and redundant reading of attribute data from data stores like eDirectory or connected applications.

Innovation Solution

Implementing a DirXML query minimization subsystem that uses intelligent caching and prefetching to minimize the number of queries by checking a result cache before querying the target system, and augmenting queries with likely needed attributes based on previous policy invocations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the same attribute is repeatedly queried from the target system during a single policy invocation, then the policy can access attribute values easily, but the synchronization performance becomes slow due to excessive and redundant reading

Engineering Contradiction:
Improveease of attribute accessVSAvoidsynchronization performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs preliminary actions by checking the result cache before querying the target system. When a policy needs an attribute value, the system first checks if it's already in the cache, avoiding redundant queries to the target system and improving synchronization performance while maintaining ease of attribute access

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A result cache is introduced as an intermediary between the policy and the target system. This cache stores previously retrieved attribute values and serves as a mediator that can quickly provide attribute values without requiring repeated queries to the target system, thus resolving the contradiction between easy attribute access and synchronization performance

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the result cache is checked before querying the target system, then redundant queries are reduced and performance improves, but the device complexity increases due to the caching mechanism

Engineering Contradiction:
Improvequery efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the data retrieval process into two parts: a fast result cache for frequently accessed attribute values and the target system for primary data storage. This segmentation allows the system to handle simple cache lookups quickly while maintaining the integrity of the target system, improving query efficiency without significantly increasing overall system complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates copies of attribute values and stores them in the result cache. These copies serve as lightweight replicas that can be quickly accessed without querying the target system repeatedly. The copying mechanism is simple and focused only on caching data, which minimizes the increase in system complexity while significantly improving query efficiency

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7769736B2System and method for efficient issuance of queries
Publication Date: 2010.08.03 EMC IP HLDG CO LLC
  • US7769736B2 patent drawing
  • US7769736B2 patent drawing
  • US7769736B2 patent drawing

AI summary

System and method for efficient issuance of queries, such as DirXML script queries, by a policy for a value of an attribute of an object of the target system are described. In one embodiment, the method comprises, responsive to issuance by a policy of a query for a value of a designated attribute of a designated object of a target system, checking a result cache associated with the target system to determine whether the value for the designated attribute of the designated object is stored therein; responsive to a determination that the value for the designated attribute of the designated object is stored in the result cache, returning the value stored in the result cache to the policy; and responsive to a determination that the value for the designated attribute of the designated object is not stored in the result cache, querying the target system for the value of the designated attribute of the designated object.