Accelerate the Value of Data

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.

Note: Stop and Pause are supported.

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:

Table 1. Parameters
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.
The task result contains these fields and may also contain some extra fields explained below:
Table 2. Output fields
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 readOnly parameter is set to false, then the missing crosswalks are restored in the EXTERNAL_RELATION_CROSSWALKS column.

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 readOnly parameter is set to false, then all relationships that contain the same crosswalks are merged.

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 readOnly parameter is set to false, then the crosswalks are removed from the EXTERNAL_RELATION_CROSSWALKS column.

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"
}