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
- 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.
- 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.