Object Size Limits

Quota limits can be defined for object size limits on Reltio Connected Data Platform.

These limits help you avoid any performance degradation and platform instability that are related to large object sizes. Exceeding these limits may lead to performance issues and platform instability.

To retrieve the object limit configuration, send the following request:
GET /tenants/tenantID
The following response is generated:
…
    "objectSizeLimits": {
        "maxAttributeValues": 200,
        "maxAttributeValueSize": 10240,
        "maxCrosswalks": 200,
        "maxSubNestedAttributesPerEntity": 20000
        "maxSubReferenceAttributesPerEntity": 20000
        "maxReferenceCrosswalksPerEntity": 2000
    }
…
To update the current object limit configuration, send the following request:
POST /tenants/tenantID

You must update the request body with the new limits. If a limit is absent, its default value is used.

Table 1: Object Limits describes the details related to the object size limits and the error messages that are displayed.
Note: The term entry in the table refers to the objects that are part of the batch in the request body. For example, if the batch size is 20 objects, then the batch has 20 entries.
Table 1. Object Size Limits
Property Name Default Value Description Error code Error Message
maxAttributeValues 200 Maximum number of values per attribute. 131 OBJECT_TOO_LARGE_TO_SAVE_IT - Object is too large {object_id}. Attribute values limit exceeded for the {attribute_path} attribute. Limit: {limit_value}, current value:{current_value}
921 ENTRY_HAS_LARGE_OBJECT - [Main Entity|Relation] with crosswalks: [{crosswalk_values}] exceed the attribute values limit for the {attribute_path} attribute if all changes from the request are applied. Limit: {limit_value}, value to save:{current_value}
maxAttributeValueSize 10240 kilobytes Maximum character length of a single value. The value is measured in kilobytes. 147 ATTRIBUTE_VALUE_SIZE_LIMIT_EXCEEDED - Maximum attribute value size limit {value_size} exceeded for attribute {attribute_name} for the object URI {entity_id}.
maxCrosswalks 200 Maximum number of crosswalks per entity. Crosswalks in reference attributes are not considered in this limit.
Note: For entities, the entity size is checked along with the size of the reference entities and relations specified in the reference attributes. For relations, only the relation size is checked, and the size of the start and end objects is not checked. So, the relation size can be increased by adding additional crosswalks.
131 OBJECT_TOO_LARGE_TO_SAVE_IT - Object is too large {object_id}. Crosswalks limit exceeded for the whole object. Limit: {limit_value}, current value:{current_value}
921 ENTRY_HAS_LARGE_OBJECT - [object type] with crosswalks: [{crosswalk_values}] exceed the crosswalks limit for the whole object if all changes from the request are applied. Limit: {limit_value}, current value: {current_value}
maxSubNestedAttributesPerEntity 20000 Maximum number of values under all nested attributes per entity. For several levels of nesting, both the sub-attribute itself and its sub-attributes are counted. 131 OBJECT_TOO_LARGE_TO_SAVE_IT - Object is too large {object_id}. Sub-nested values limit exceeded for the whole object. Limit: {limit_value}, current value: {current_value}
921 ENTRY_HAS_LARGE_OBJECT - [object type] with crosswalks: [{crosswalk_values}] exceed the sub-nested values limit for the whole object if all changes from the request are applied. Limit: {limit_value}, current value: {current_value}
maxSubReferenceAttributesPerEntity 20000 Maximum number of values under all referenced attributes per entity. 131 OBJECT_TOO_LARGE_TO_SAVE_IT - Object is too large {object_id}. Sub-reference values limit exceeded for the whole object. Limit: {limit_value}, current value: {current_value}
921 ENTRY_HAS_LARGE_OBJECT - [object type] with crosswalks: [{crosswalk_values}] exceed the sub-reference values limit for the {attribute_path} attribute if all changes from the request are applied. Limit: {limit_value}, current value: {current_value}
maxReferenceCrosswalksPerEntity 2000 Maximum number of crosswalks in all referenced attributes per entity. Crosswalks from refEntity and refRelation of reference attributes are also considered. 131 OBJECT_TOO_LARGE_TO_SAVE_IT - Object is too large {object_id}. Reference crosswalks limit exceeded for the whole object. Limit: {limit_value}, current value: {current_value}
921 ENTRY_HAS_LARGE_OBJECT - [object type] with crosswalks: [{crosswalk_values}] exceed the reference crosswalks limit for the whole object if all changes from the request are applied. Limit: {limit_value}, current value: {current_value}

A 922 error message that is common for all properties may also be generated, if any entry does not have large objects but has an object that is used in a failed entry:

ENTRY_HAS_OBJECT_USED_IN_FAILED_ENTRY - Reference Entity with crosswalks: [{crosswalk_values}] is also used in a failed entry for the object with crosswalks: [{crosswalk_values}]

Note: The following are considered when attributes are counted:
  • The hidden and ignored attributes along with crosswalks with deleteDate are also counted.
  • Sub-nested attributes located in a sub-reference attribute are considered as both sub-nested and sub-reference attributes.

Examples

Example 1: Count of Sub-Nested Attributes

When an entity has several levels of nesting, sub-nested attributes from all the levels are counted.

The value of maxSubNestedAttributesPerEntity is 3. You post the following values for sub-nested attributes of an entity as follows:
POST {{api_uri}}{{tenant}}/entities
[
    {
        "attributes": {
            "NestedTest": [
                {
                    "value": {
                        "NestedTestL2": [
                            {
                                "value": {
                                    "IntL2": [
                                        {
                                            "value": "11"
                                        },
                                        {
                                            "value": "12"
                                        }
                                    ],
                                    "StringL2": [
                                        {
                                            "value": "33"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "type": "configuration/entityTypes/HCP",
        "roles": [],
        "crosswalks": [
            {
                "type": "configuration/sources/HMS",
                "value": "1"
            }
        ]
    }
]

Response

[
    {
        "index": 0,
        "errors": {
            "severity": "Error",
            "errorMessage": "Object too large to save it entities/19aHBZjf",
            "errorCode": 131,
            "errorDetailMessage": "Object is too large entities/19aHBZjf. Sub-nested values limit exceeded"
        },
        "successful": false
    }
]

There is an error in the response because the count of the sub-nested attributes you posted is four that exceeds the limit of three:

NestedTestL2 + IntL2_1 + IntL2_2 + StringL2 = 4 sub-nested attributes

Example 2: Count of Sub-Reference Attributes

All the sub-reference attributes contained in an entity are counted to check the maxSubReferenceAttributesPerEntity limit.

The value of maxSubReferenceAttributesPerEntity is 4. You post the following values for sub-reference attributes of an entity as follows:

POST {{api_uri}}{{tenant}}/entities
[
    {
        "attributes": {
            "FirstName": [
                {
                    "value": "Simon"
                }
            ],
            "LastName": [
                {
                    "value": "Mitchell"
                }
            ],
            "Address": [
                {
                    "value": {
                        "AddressLine1": [
                            {
                                "value": "350 Hawthorne Ave"
                            }
                        ],
                        "City": [
                            {
                                "value": "City1"
                            }
                        ]
                    }
                },
                {
                    "value": {
                        "AddressLine1": [
                            {
                                "value": "19 Birmington str"
                            }
                        ],
                        "City": [
                            {
                                "value": "City2"
                            }
                        ]
                    }
                }
            ],
            "Employment": [
                {
                    "value": {
                        "Name": [
                            {
                                "value": "Organization Name"
                            }
                        ]
                    }
                }
            ]
        },
        "type": "configuration/entityTypes/HCP",
        "crosswalks": [
            {
                "type": "configuration/sources/FB",
                "value": "456842"
            }
        ]
    }
]

Response

[
    {
        "index": 0,
        "errors": {
            "severity": "Error",
            "errorMessage": "Object too large to save it entities/19aHBqmh",
            "errorCode": 131,
            "errorDetailMessage": "Object is too large entities/19aHBqmh. Sub-reference values limit exceeded"
        },
        "successful": false
    }
]

There is an error in the response because the count of the sub-references attributes you posted is five that exceeds the limit of four.

Example 3: Count of Sub-Nested Attributes Inside a Sub-Reference Attribute

Sub-nested attributes inside a sub-reference attribute are counted along with other sub-nested attributes even if the other sub-nested attributes are not inside a sub-reference attribute. The total count of sub-nested attributes must not exceed the specified limit irrespective of where they are located.

The value of maxSubNestedAttributesPerEntity and maxSubReferencesAttributesPerEntity is 3. The following example shows that the sub-nested attributes count (RefNestedTest.RefInt1 + RefNestedTest.RefInt2 + RefNestedTest.RefString1 + RefNestedTest.RefString2) inside a sub-reference attribute exceeds the limit of 3:
POST {{api_uri}}{{tenant}}/entities
[
    {
        "attributes": {
            "FirstName": [
                {
                    "value": "Person1"
                }
            ],
            "Address": [
                {
                    "value": {
                        "RefNestedTest": [
                            {
                                "value": {
                                    "RefInt": [
                                        {
                                            "value": "11"
                                        },
                                        {
                                            "value": "12"
                                        }
                                    ],
                                    "RefString": [
                                        {
                                            "value": "33"
                                        },
                                        {
                                            "value": "44"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "type": "configuration/entityTypes/HCP",
        "roles": [],
        "crosswalks": [
            {
                "type": "configuration/sources/FB",
                "value": "456842"
            }
        ]
    }
]

Response

[
    {
        "index": 0,
        "errors": {
            "severity": "Error",
            "errorMessage": "Object too large to save it entities/19aHFyWB",
            "errorCode": 131,
            "errorDetailMessage": "Object is too large entities/19aHFyWB. Sub-nested values limit exceeded"
        },
        "successful": false
    }
]

In the following example, the number of sub-reference attributes is 4 (RefNestedTest + RefNestedTest.RefString1 + RefNestedTest.RefString2 + City).

POST {{api_uri}}{{tenant}}/entities
[
    {
        "attributes": {
            "FirstName": [
                {
                    "value": "Person1"
                }
            ],
            "Address": [
                {
                    "value": {
                        "RefNestedTest": [
                            {
                                "value": {
                                    "RefString": [
                                        {
                                            "value": "33"
                                        },
                                        {
                                            "value": "44"
                                        }
                                    ]
                                }
                            }
                        ],
                        "City": [
                            {
                                "value": "Some city"
                            }
                        ]
                    }
                }
            ]
        },
        "type": "configuration/entityTypes/HCP",
        "roles": [],
        "crosswalks": [
            {
                "type": "configuration/sources/FB",
                "value": "456842"
            }
        ]
    }
]

Response

[
    {
        "index": 0,
        "errors": {
            "severity": "Error",
            "errorMessage": "Object too large to save it entities/19aHFyWB",
            "errorCode": 131,
            "errorDetailMessage": "Object is too large entities/19aHFyWB. Sub-reference values limit exceeded"
        },
        "successful": false
    }
]