You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found a bug where when running multiple concurrent/asynchronous transactions to insert data can potentially cause a transaction conflict congestion, causing all the TXs to block each other.
This was found when writing the benchmarking code which inserts upwards of 1,000,000 records concurrently into the database.
Fundamentally, this is caused by the IPLD blocks of the delta CRDT payloads using the CIDs of the block as the datastore key. The same data (document field values) produces the same key. So different create operations within their own datastore transactions will be manipulating equivalent data, stepping on eachother.
Fixed in the feat/benchmark-suite branch by adding the DocKey to the IPLD delta blocks which ensures that blocks with the same data, from different docs produce different block CIDs.
The text was updated successfully, but these errors were encountered:
Documenting this for historical purposes.
Found a bug where when running multiple concurrent/asynchronous transactions to insert data can potentially cause a transaction conflict congestion, causing all the TXs to block each other.
This was found when writing the benchmarking code which inserts upwards of 1,000,000 records concurrently into the database.
Fundamentally, this is caused by the IPLD blocks of the delta CRDT payloads using the CIDs of the block as the datastore key. The same data (document field values) produces the same key. So different
create
operations within their own datastore transactions will be manipulating equivalent data, stepping on eachother.Fixed in the
feat/benchmark-suite
branch by adding theDocKey
to the IPLD delta blocks which ensures that blocks with the same data, from different docs produce different block CIDs.The text was updated successfully, but these errors were encountered: