When can there be an inconsistency in Elastic Search versus Cassandra and how can we fix such inconsistencies?

Question

When can there be an inconsistency in Elastic Search versus Cassandra and how can we fix such inconsistencies?

Answer

In rare cases, we can have inconsistency on the Elastic Search level when some columns or rows returned or not returned from time to time. We need to know those inconsistencies to predict issues and to have a clear picture of the overall problem.

Elastic search inconsistency is indicated in the following conditions.

1. During Search issues
2. Merge Issues
3. If loaded data is not visible in the tenant
4. If we enable the search by OV feature on a tenant

Solution

Run the following request to perform background comparisons of main storage and search storage and to resolve any found inconsistencies based on the comparisons. If entities are present in search but not present in main data storage, use this request to remove these entities from search storage. If entities are present in main storage but not present in search storage, use this request to reindex the entities.

POST https://<environment URL (ex. pilot.reltio.com)>/reltio/api/{{tenant}}/esCassandraConsistencyCheck?entityType={{entityType}}&maxResultsToStore={{maxResultsToStore}}&compareVersions={{compareVersions}}

Parameters

  • tenant- ID of the tenant to check
  • entityType- entity type to check (all types will be checked if this parameter is absent)
  • maxResultsToStore- the task stores URIs for inconsistent entities. This parameter is needed to prevent the consumption of large volumes of memory due to many inconsistent entities. Default value: 100.
  • compareVersions- if this parameter is set to true, then versions of objects in main and search storages will be compared. Default is false.

Check task status

Request

While task is in progress it is displayed in the active tasks list:

GET https://<environment URL (ex. pilot.reltio.com)>/reltio/tasks

After task completes it is displayed in the tasks history list:

GET https://<environment URL (ex. pilot.reltio.com)>/reltio/tasks/history

The task history shows if an inconsistency was found ("totalIdsAbsentInCassandra", "totalIdsAbsentInEs", "totalVersionConflicts", "idsAbsentInEs", "idsAbsentInCassandra", "versionConflicts").

Note: Because this task tries to fix all found inconsistencies, but applies the fix after storing the results in its status, you may see some inconsistency in the status. Run this task one more time to check if all inconsistencies were fixed.
References

Additional References

https://reltio.zendesk.com/hc/en-us/articles/360035506751

 

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.