Skip to content

store ids instead of pointers of all dirty objs of a txn

This an optional Enhancement proposal for handling FA. (Not a bug fix)

This is a idea to replace the existing "list pointers to dirty objects ( nodes and relationships) in Main table" with a vector of node and relation ids. i.e each transaction uses a vector to store the ids of dirty objects instead of a pointers to Pmem Main tables.

The purpose of storing ids in vectors is to solve the following

  1. Handling FA during system failures . (See #2 (closed))

To Solve this, just replace the above vector with a persistent vector and it must be made part of graph_db (not the transaction object).Thus when a transaction fails, the graph-db object can use the Persistent vector of the corresponding failed transaction as a redo or undo persistent log.

  1. Similarly during the transaction commits (i.e inserts and updates), the same persistent vector (with some minor modifications) can be used as as a redo or undo persistent log.

Merge request reports