Skip to content

Edges inserted are not retrieved later #1255

@lvca

Description

@lvca

ArcadeDB Version:

23.9.1

OS and JDK Version:

MacOS

In the following circumstance, edges inserted and committed could be not retrieved:

  1. thread A is keeping a copy of the immutable vertex X
  2. thread A is adding an edge Y to the vertex X
  3. the same thread A later does the same operation, but the original cached immutable copy is not updated with the latest one causing a rewriting of the new vertex

The issue is that when an immutable record is modified (.modify() method), it should be checked if the record was previously loaded in the current transaction. if not, it means it's a cached copy or is coming from another transaction.

Without keeping a copy of the page in the transaction, the latest page is loaded from the storage into the transaction. So at save/commit time, the record uses the latest version of the page, succeeding in the 2nd phase of the commit.

A reload() must be forced every time the record is modified and the page is not in transaction.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions