Pinal Shah created ATLAS-5228:
---------------------------------

             Summary: 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


*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



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to