[
https://issues.apache.org/jira/browse/ATLAS-5228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pinal Shah updated ATLAS-5228:
------------------------------
Description:
*Issue:*
When rdbms backend is selected, it errors while creating table with many
columns > 1000
*Exception:*
{code:java}
[NotificationHookConsumer thread-0] ERROR [RdbmsStore.java:289] attempt #1:
failed to create key(storeId=6, keyLength=14953, key=^CB CREATE TABLE
my_large_table_nx1XXX (col1 STRING,...col1000 STRING) STORED AS TEXTFIL ):
Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.7.15.v20240516-53511fdbd8):
org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
org.postgresql.util.PSQLException: ERROR: index row size 3328 exceeds btree
version 4 maximum 2704 for index "janus_key_uk_store_name" Detail: Index row
references tuple (188,100) in relation "janus_key". Hint: Values larger than
1/3 of a buffer page cannot be indexed. Consider a function index of an MD5
hash of the value, or use full text indexing. Error Code: 0 Call: INSERT INTO
janus_key (id, name, store_id) VALUES (?, ?, ?) bind => [3 parameters bound]
2025-08-01 16:35:26,520 [NotificationHookConsumer thread-0] ERROR
[StandardJanusGraph.java:971] Could not commit transaction [921] due to storage
exception in commit org.janusgraph.core.JanusGraphException: Could not execute
operation due to backend exception at
org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:54)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.persist(CacheTransaction.java:96)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.flushInternal(CacheTransaction.java:153)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.commit(CacheTransaction.java:210)
at
org.janusgraph.diskstorage.BackendTransaction.commitStorage(BackendTransaction.java:149)
at
org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:968){code}
*Root Cause:*
Limitation in Postgres: An index entry cannot exceed approximately one-third of
a page (after TOAST compression, if applicable)
[65.1. B-Tree Indexes|https://www.postgresql.org/docs/current/btree.html]
*Fix:*
Update indexed attributes which stores large string values to non indexable
was:
*Issue:*
Error while create table with many columns > 1000
*Exception:*
{code:java}
[NotificationHookConsumer thread-0] ERROR [RdbmsStore.java:289] attempt #1:
failed to create key(storeId=6, keyLength=14953, key=^CB CREATE TABLE
my_large_table_nx1XXX (col1 STRING,...col1000 STRING) STORED AS TEXTFIL ):
Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.7.15.v20240516-53511fdbd8):
org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
org.postgresql.util.PSQLException: ERROR: index row size 3328 exceeds btree
version 4 maximum 2704 for index "janus_key_uk_store_name" Detail: Index row
references tuple (188,100) in relation "janus_key". Hint: Values larger than
1/3 of a buffer page cannot be indexed. Consider a function index of an MD5
hash of the value, or use full text indexing. Error Code: 0 Call: INSERT INTO
janus_key (id, name, store_id) VALUES (?, ?, ?) bind => [3 parameters bound]
2025-08-01 16:35:26,520 [NotificationHookConsumer thread-0] ERROR
[StandardJanusGraph.java:971] Could not commit transaction [921] due to storage
exception in commit org.janusgraph.core.JanusGraphException: Could not execute
operation due to backend exception at
org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:54)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.persist(CacheTransaction.java:96)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.flushInternal(CacheTransaction.java:153)
at
org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.commit(CacheTransaction.java:210)
at
org.janusgraph.diskstorage.BackendTransaction.commitStorage(BackendTransaction.java:149)
at
org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:968){code}
*Root Cause:*
Limitation in Postgres: An index entry cannot exceed approximately one-third of
a page (after TOAST compression, if applicable)
[65.1. B-Tree Indexes|https://www.postgresql.org/docs/current/btree.html]
*Fix:*
Update indexed attributes which stores large string values to non indexable
> Exception index row size exceeds in janus_key_uk_store_name when large string
> is indexed
> ----------------------------------------------------------------------------------------
>
> Key: ATLAS-5228
> URL: https://issues.apache.org/jira/browse/ATLAS-5228
> Project: Atlas
> Issue Type: Bug
> Components: atlas-core
> Reporter: Pinal Shah
> Assignee: Pinal Shah
> Priority: Major
>
> *Issue:*
> When rdbms backend is selected, it errors while creating table with many
> columns > 1000
> *Exception:*
>
> {code:java}
> [NotificationHookConsumer thread-0] ERROR [RdbmsStore.java:289] attempt #1:
> failed to create key(storeId=6, keyLength=14953, key=^CB CREATE TABLE
> my_large_table_nx1XXX (col1 STRING,...col1000 STRING) STORED AS TEXTFIL ):
> Exception [EclipseLink-4002] (Eclipse Persistence Services -
> 2.7.15.v20240516-53511fdbd8):
> org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
> org.postgresql.util.PSQLException: ERROR: index row size 3328 exceeds btree
> version 4 maximum 2704 for index "janus_key_uk_store_name" Detail: Index row
> references tuple (188,100) in relation "janus_key". Hint: Values larger than
> 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5
> hash of the value, or use full text indexing. Error Code: 0 Call: INSERT INTO
> janus_key (id, name, store_id) VALUES (?, ?, ?) bind => [3 parameters bound]
> 2025-08-01 16:35:26,520 [NotificationHookConsumer thread-0] ERROR
> [StandardJanusGraph.java:971] Could not commit transaction [921] due to
> storage exception in commit org.janusgraph.core.JanusGraphException: Could
> not execute operation due to backend exception at
> org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:54)
> at
> org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.persist(CacheTransaction.java:96)
> at
> org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.flushInternal(CacheTransaction.java:153)
> at
> org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.commit(CacheTransaction.java:210)
> at
> org.janusgraph.diskstorage.BackendTransaction.commitStorage(BackendTransaction.java:149)
> at
> org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:968){code}
> *Root Cause:*
> Limitation in Postgres: An index entry cannot exceed approximately one-third
> of a page (after TOAST compression, if applicable)
> [65.1. B-Tree Indexes|https://www.postgresql.org/docs/current/btree.html]
> *Fix:*
> Update indexed attributes which stores large string values to non indexable
--
This message was sent by Atlassian Jira
(v8.20.10#820010)