Skip to content

Concurrent modification on page #2187

@ruslan-butyk-fntext

Description

@ruslan-butyk-fntext

Hi guys!
I need some advice/tip/help how to "conquer" concurrent transactions in ArcadeDB.

The context:
I have an instance of OracleDB where data is primarily stored and an instance of ArcadeDB (remote, standalone server).
Communication to ArcadeDB is done via RemoteDatabase (REST calls).
When some changes are done to OracleDB all the required changes are also reflected (synced) to ArcadeDB.
ArcadeDB is only used for routing and stores all the required data.
It's really important to keep data between OracleDB and ArcadeDB in sync and to do that I synchronize transactions between OracleDB and ArcadeDB.
Meaning that when Oracle transaction is created, I open an ArcadeDB transaction, if needed (not all data are synced to ArcadeDB), and commit/rollback them simultaneously.
Oracle has many parallel transactions that are making changes.

The problem:
I'm facing an exception like this a lot:
Concurrent modification on page PageId(dbname/40696/156) in file 'device_0.40696.65536.v0.bucket' (current v.66 <> database v.67). Please retry the operation (threadId=128)

I've tried to increase the delay and retry number but then I'm facing a "deadlocks" on my side (OracleDB) because Oracle transaction is waiting when ArcadeDB transaction succeed and there a lot of them and Oracle transaction can't wait for long.

Also, I saw in the documentation that ConcurrentModificationException should be thrown when a record is modified, not a page as it says in the exception message above:
Image

Would be glad for any tips or tricks from your side how to deal with this if possible.
Thanks in advance!

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions