JanusGraph / JanusGraph/janusgraph

Vertex details committed to storage despite the failure from Cassandra, and Rollback didn't help

Open
#3,996 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
5.8k
Forks
1.2k
Avg merge
13h 53m
Merged PRs (30d)
6

Description

### Discussed in https://github.com/JanusGraph/janusgraph/discussions/3978

Originally posted by **sumandas0** September 13, 2023
We use a string as a composite index in our primary storage, Cassandra. However, when we send a large string, we encounter the following error: "Caused by: java.util.concurrent.ExecutionException: com.datastax.oss.driver.api.core.servererrors.InvalidQueryException: Key length of 67871 is longer than the maximum of 65535." This is understandable. The real issue arises afterward: even when this error is thrown, the data is still written to the graph store and becomes searchable by a few indices. The behavior is inconsistent; sometimes the data can be searched using certain attributes, and sometimes it cannot. When we attempt a rollback on the same transaction after detecting the exception, the previously written values aren't rolled back. This has significantly disrupted the indexing in our application. We understand the error, but why are incorrect indices being written?

Janusgraph Version: 6.0.0
Storage Backend: Cassandra
Index Backend: Elasticsearch

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the oversized composite-index value against Cassandra and Elasticsearch, then trace the transaction and rollback behavior described in the report. Done means a failed Cassandra write does not leave inconsistent searchable data or values that rollback cannot remove.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra, elasticsearch, java
Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.