IBM Support

Finding reconciliation hotspots and data inconsistencies through resource data statistics provided by the Registry

Technical Blog Post


Abstract

Finding reconciliation hotspots and data inconsistencies through resource data statistics provided by the Registry

Body

One of the most complex operations performed by the Registry is reconciliation. Depending on aspects like Resource Shape, Identifying Rules, relationships and existing Registration Records, the reconciliation for a new Registration Record might consume a significant amount of time.

As a summary, what reconciliation does is processing a set of Registration Records and generating Resource Records as the result. To construct such a set, the Registry starts with the Registration Record being created / updated / deleted and then gathers all Registration Records that have properties for a Identifying rule matching the property values from the initial Registration Record (For a Registration Record of type ComputerSystem, that means picking other records with same systemBoardUUID, or same manufacturer + model + serialNumber or so). The Registry does a similar search for each Registration Record, then for each record found and so forth. The set continues to grow until the point where the search is done to all records and no record is found.

For more details about the reconciliation mechanism, you can refer to this link from the documentation or to an overview written by Joe Ross.

Just by the brief description lines above, we see that an important factor to reconciliation complexity is similarity of property values.

The Fix Pack 1 for Registry Services comes with an enhancement to provide statistics about the existing Registration Records and Resource Records managed by the Registry.

The new resourceAnalytics CLI generates a report in either plain text or XML. For more details about its syntax and features, refer to the documentation

A particularly interesting element of those statistics is the ranking of most common Identifying Rule values, broken down by Resource Shape and by Identifying rule. Below, an excerpt of a plain text statistics report:

 
...

- crtv:ComputerSystem = 120 records

-- crtv:ComputerSystem (NOT crtv:vmid + crtv:serialNumber + crtv:model + crtv:manufacturer)
 
---- number of registration records matching this naming rule = 60
 
---- number of registration records found in a resource record matching this naming rule, min / avg / max = 2 / 2 / 2
 
---- number of registration records matching this naming rule that are associated to a resource record that also matches this naming rule = 60
 
---- number of resource records matching this naming rule = 30
 
---- Most common values (top 3) for this naming rule:
 
------ crtv:manufacturer=router-manufacturer30,crtv:model=router-model30,crtv:serialNumber=router-serialNumber30 2 registration records

------ crtv:manufacturer=router-manufacturer10,crtv:model=router-model10,crtv:serialNumber=router-serialNumber10 2 registration records

------ crtv:manufacturer=router-manufacturer11,crtv:model=router-model11,crtv:serialNumber=router-serialNumber11 2 registration records
 
-- crtv:ComputerSystem (crtv:systemBoardUUID)
 
---- number of registration records matching this naming rule = 60
 
---- number of registration records found in a resource record matching this naming rule, min / avg / max = 2 / 2 / 2
 
---- number of registration records matching this naming rule that are associated to a resource record that also matches this naming rule = 60
 
---- number of resource records matching this naming rule = 30
 
---- Most common values (top 3) for this naming rule:
 
------ crtv:systemBoardUUID=host-14 2 registration records
 
------ crtv:systemBoardUUID=host-15 2 registration records
 
------ crtv:systemBoardUUID=host-16 2 registration records
 
---- Most common values (top 3) for the resource type:
 
------ crtv:manufacturer=router-manufacturer30,crtv:model=router-model30,crtv:serialNumber=router-serialNumber30 2 registration records
 
------ crtv:manufacturer=router-manufacturer10,crtv:model=router-model10,crtv:serialNumber=router-serialNumber10 2 registration records
 
------ crtv:manufacturer=router-manufacturer11,crtv:model=router-model11,crtv:serialNumber=router-serialNumber11 2 registration records

...
 


That ranking is convenient to identify sets of registration records with similar values that can influence the reconciliation overall performance. With the information at hand, peaks of processing time can be understood and strategies for creating new Registration Records can be defined.

The report can also give hints of incorrect data sent to the Registry or misconfiguration of the application.

 

Example 1

For a custom Resource Shape, a low average number of Registration Records grouped by Resource Record might indicate a design issue of the shape, causing few merges of Registration Records.

 
...
 
-- comp:CustomResource (comp:attributeA + comp:attributeB)

---- number of registration records matching this naming rule = 480

---- number of registration records found in a resource record matching this naming rule, min / avg / max = 1 / 1.01 / 2

---- number of registration records matching this naming rule that are associated to a resource record that also matches this naming rule = 480

---- number of resource records matching this naming rule = 475

...

There are 480 Registration Records distributed among 475 Resource Records, so only 5 Resource Records have Registration Records merged (2 Registration Records each)

 

Example 2

If the average and/or the maximum number of Registration Records grouped by Resource Record is too high (based on the number of monitoring solutions in the IT environment or any other relevant aspect), there might be an issue with the configuration or the run time behavior for the OSLC Service Provider that sends data to the Registry, like incorrectly populating an attribute several times with an old value rather than the actual value.

 

...

 
-- crtv:ServiceInstance (crtv:parentServiceInstance + crtv:name)

---- number of registration records matching this naming rule = 1000

---- number of registration records found in a resource record matching this naming rule, min / avg / max = 10 / 200 / 900 

...

---- Most common values (top 3) for this naming rule:

------ crtv:name=Perf-ServiceInstance-1,crtv:parentServiceInstance=http://open-services.net/ns/crtv#NULL 900 registration records

------ crtv:name=Perf-ServiceInstance-4,crtv:parentServiceInstance=http://open-services.net/ns/crtv#NULL 30 registration records

------ crtv:name=Perf-ServiceInstance-5,crtv:parentServiceInstance=http://open-services.net/ns/crtv#NULL 29 registration records

...

 

 

Example 3

An Identification Rule without any Registration Record is not displayed in the report. For custom Resource Shapes, that might be a signal that there is a typo in the Identification Rule definition.

[{"Business Unit":{"code":"BU050","label":"BU NOT IDENTIFIED"},"Product":{"code":"SSHPN2","label":"Tivoli"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}}]

UID

ibm11275922