Relationship crosswalks consistency task
Learn how to check a tenant for relationships that have duplicate crosswalks.
The main reason for this inconsistency is that multiple entities with the same crosswalks are loaded simultaneously while using two parallel processes. Normally, this inconsistency is fixed automatically by the API after the first request from the entities by the crosswalk responsible for the duplication. This task finds all relationships with the same crosswalks and executes getting by crosswalks for those that caused the relationships to be merged.
This task can restore missing records for crosswalks that exist in a relationship but are
missing in the EXTERNAL_CROSSWALKS
column family, fix duplicate
crosswalks, and remove extra records that exist in the
EXTERNAL_CROSSWALKS
column family but where related crosswalks are
absent in the relationship.
Request:
POST {ApplicationURL}/api/{tenantId}/relationCrosswalksConsistencyCheck
If the request body is provided, then only the relationships specified in the JSON array are processed.
POST {ApplicationURL}/relationCrosswalksConsistencyCheck?tenantId=<TENANT_ID>
[
"relations/Uri1",
"relations/Uri2",
...
"relations/UriN",
]
You can see the following parameters in the task result:
Parameter | Required | Description |
---|---|---|
tenantId
|
Yes | The ID of the tenant that you use to check for duplicate crosswalks. |
checkDeletedCrosswalks |
No | Stage one of the task. If the parameter is set to
true , then the task restores missing records for
crosswalks that exist in the relationship but are missing in the
EXTERNAL_RELATION_CROSSWALKS column. The default
value is false . |
resolveDuplicates |
No | Stage two of the task. If the parameter is set to
false , then the task won’t fix duplicate
relationships using their crosswalks. The default value is true. |
checkExistence |
No | Stage three of the task. If the parameter is set to
true , then the task removes extra records that
exist in the EXTERNAL_RELATION_CROSSWALKS column.
Related crosswalks are absent in the relationship. The default value is
false . |
readOnly |
No | If the parameter is set to true , then any crosswalk
inconsistencies that are found are only reported and not fixed. The
default value is false . |
maxResultsToStore |
No | This parameter stores the crosswalks of the relationships for which
inconsistencies have been found in its status. It is needed to prevent
consuming a huge volume of memory when many relationships with
inconsistencies are found. The default value is
500 . |
maxSubResultsToStore |
No | This parameter stores the relationship IDs for which inconsistencies
have been found in its status. It limits the number of paired
relationships with the corresponding crosswalk to reduce memory usage.
The default value is 10 . |
Field | Output of | Description |
---|---|---|
missedExternalCrosswalks
|
stage one | This field displays the missing crosswalks in the
EXTERNAL_RELATION_CROSSWALKS column. For each
crosswalk, a corresponding list of relationships that contains the
crosswalk is displayed. If the |
missedExternalCrosswalksCount |
stage one | This field displays the number of missing crosswalks in the
EXTERNAL_RELATION_CROSSWALKS column. |
processedTOObjectsCount |
stage one | This field displays the total number of relationships processed during stage one of the task. |
entitiesWithSameCrosswalks |
stage two | This field displays the (duplicate) crosswalks found in more than
one relationship and the corresponding relationships that contain
the crosswalks. If the |
failedToMergeObjects |
stage two | This field displays all duplicate crosswalks that didn’t merge and the corresponding entities that contain the crosswalks. |
failedToMergeObjectsCount |
stage two | This field displays the number of times the relationships with duplicate crosswalks failed to merge. |
entitiesWithSameCrosswalksCount |
stage two | This field displays the number of duplicate crosswalks. |
redundantExternalCrosswalks |
stage three | This field displays the crosswalks that exist in the
EXTERNAL_RELATION_CROSSWALKS column but don’t
exist in a relationship. For each crosswalk, a corresponding list of
relationships that contains the crosswalk is displayed. If the
|
redundantExternalCrosswalksCount |
stage three | This field displays the number of crosswalks that exist in the
EXTERNAL_RELATION_CROSSWALKS column but do not
exist in a relationship. |
numberOfProcessedObjects |
stages one, two,three | This field displays the total number of crosswalks processed across all three stages of the task. |
Response
{
"id" : "43d65edd-62ab-4193-ab86-bd7637028c2a",
"groupId" : "39c6d665-7c81-4be3-afad-c3fea451aa87",
"createdTime" : 1660049801853,
"createdBy" : "admin",
"updatedTime" : 1660049801853,
"updatedBy" : "admin",
"type" : "com.reltio.businesslogic.tasks.consistency.RelationCrosswalksConsistencyTask",
"status" : "COMPLETED",
"name" : "Checking crosswalks consistency for tenant Merill",
"createdOnHost" : "some-host",
"executedOnHost" : "some-host",
"parallelExecution" : false,
"nodesGroup" : "test",
"startTime" : 1660049802702,
"endTime" : 1660049802885,
"parameters" : {
"tenantId" : "Merill",
"uriList" : "",
"maxResultsToStore" : "500",
"maxSubResultsToStore" : "10",
"ignoreEventsInStreaming" : "true",
"checkDeletedCrosswalks" : "true",
"resolveDuplicates" : "true",
"checkExistence" : "true",
"readOnly" : "false"
},
"currentState" : {
"numberOfFailedToPublishEvents" : 0,
"entitiesWithSameCrosswalksCount" : 1,
"missedExternalCrosswalks" : {
"m_001.FB.crosswalkValue1" : [ "relations/0000Aef", "relations/00006OP" ]
},
"failedToMergeObjectsCount" : 1,
"nonExistingCrosswalksFound" : 0,
"redundantExternalCrosswalksCount" : 0,
"redundantExternalCrosswalks" : { },
"failedToMergeObjects" : {
"CrosswalkTO {type: configuration/sources/FB, sourceTable: null, value: crosswalkValue1}" : [ "relations/0000Aef", "relations/00006OP" ]
},
"missedExternalCrosswalksCount" : 2,
"lastHourThroughput" : 0.0,
"entitiesWithSameCrosswalks" : {
"m_001.FB.crosswalkValue1" : [ "relations/0000Aef", "relations/00006OP" ]
},
"numberOfProcessedObjects" : 3,
"processedTOObjectsCount" : 2,
"status" : "Completed"
},
"throughput" : 0.0,
"duration" : "0s"
}