ARTICLE AD BOX
I am getting the following error while inserting data into a GridDB container:
60079 DS_TIM_ROW_DATA_INVALID ERROR Registration of row failed. Value of column in row specified for row registration, update or delete operation may have exceeded the limit value. Check whether the schema used in the operation is correct. Check whether the versions of the server and client are the same. Check whether the number and size below have exceeded the upper limit or range. ・Number of array elements ・Size of string, spatial, or BLOB data ・Time valueSituation
I have a container that stores sensor data. One of the columns is a STRING, and another is a TIMESTAMP. I occasionally receive large payloads from devices and store them as JSON strings.
When inserting certain rows, the insert fails with the above error.
ContainerInfo containerInfo = new ContainerInfo(); containerInfo.setName("SensorData"); containerInfo.setType(ContainerType.COLLECTION); List<ColumnInfo> columnList = new ArrayList<>(); columnList.add(new ColumnInfo("id", GSType.STRING)); columnList.add(new ColumnInfo("eventTime", GSType.TIMESTAMP)); columnList.add(new ColumnInfo("payload", GSType.STRING)); containerInfo.setColumnInfoList(columnList); containerInfo.setRowKeyAssigned(true); Container<String, Row> container = store.putContainer("SensorData", containerInfo, false);Insert Code
Row row = container.createRow(); row.setString(0, "device-001"); // Simulated timestamp (far future date) row.setTimestamp(1, new java.util.Date(999999999999999999L)); // Very large JSON string (~10MB+) String largePayload = new String(new char[10_000_000]).replace('\0', 'A'); row.setString(2, largePayload); container.put(row);Observations
Smaller payloads work fine.
Normal timestamps work fine.
The error only happens when:
The string becomes very large, or
The timestamp value is very large/unusual.
Questions
What are the exact size limits for:
STRING
BLOB
ARRAY
TIMESTAMP
in GridDB?
Is there a documented maximum string size per column?
Could this error be caused by client/server version mismatch?
If I need to store large JSON data (10MB+), what is the recommended approach?
Use BLOB instead of STRING?
Split data across multiple rows?
Is there a way to validate data size before calling put()?
I would appreciate clarification on what typically triggers DS_TIM_ROW_DATA_INVALID and best practices to avoid it.
Thank you!
