stasis-aries-wal/stasis/operations
Sears Russell 5ffd1110e9 Added concept of "transaction fingerprints"
The region allocator marks freed regions "Condemned" before actually freeing them.  Condemned regions are associated 
with a transaction; before they can be reused / coalesced the transaction that condemned them must complete.

The region allocator used "TisActiveTransaction(xid)" to determine whether a given transaction had completed.  The 
problem is that Stasis now reuses transaction id's, and condemned regions were never reclaimed in practice.  A transaction
fingerprint is a unique identifier (currently transaction id, rec_lsn) that can be used to distinguish transactions that
did not execute concurrently.

I considered an alternative design based upon end-of-transaction actions.  This would have worked as well, but would 
have been a more invasive change.
2010-02-18 19:12:46 +00:00
..
alloc.h add deferred, end of transaction callbacks. addresses issue 15 2009-12-15 06:30:37 +00:00
arrayList.h Add TarrayListDealloc() to arrayList. Remove one region allocation from each array list alloc. Add unit test for dealloc. 2010-02-18 04:12:39 +00:00
bTree.h dependency cleanups; removed compenastions from alloc.c 2009-08-22 00:01:02 +00:00
decrement.h dependency cleanups; removed compenastions from alloc.c 2009-08-22 00:01:02 +00:00
group.h in-memory group by implementation 2009-07-01 01:33:24 +00:00
increment.h dependency cleanups; removed compenastions from alloc.c 2009-08-22 00:01:02 +00:00
linearHashNTA.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
linkedListNTA.h renamed some functions to match naming convention 2009-05-08 06:53:30 +00:00
lladdhash.h Renamed 'lladd' directories and python module to 'stasis' 2007-06-11 21:36:57 +00:00
lsmIterators.h more refactoring; removed static variables from pageHandle.c 2009-05-08 04:56:34 +00:00
lsmTable.h added method to access dirtyPageTable 2009-08-05 20:02:33 +00:00
lsmTree.h reordered includes for compatibility with gcc3 2010-01-21 00:03:17 +00:00
lsmWorkers.h Fixed some documentation warnings, and clarified a few points. 2008-04-17 06:29:34 +00:00
lsnFreeSet.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
naiveLinearHash.h all naive linear hash methods now start with TnaiveHash; removed references to ThashAlloc from documentation 2008-11-03 21:42:42 +00:00
noop.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
pageFile.h All headers now live in the header directory. (stasis/, not src/stasis) 2008-04-13 04:02:57 +00:00
pageOperations.h Add TarrayListDealloc() to arrayList. Remove one region allocation from each array list alloc. Add unit test for dealloc. 2010-02-18 04:12:39 +00:00
pageOrientedListNTA.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
prepare.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00
regions.h Added concept of "transaction fingerprints" 2010-02-18 19:12:46 +00:00
segmentFile.h Added support for segment based recovery. For now, Stasis doesn't support hybrid recovery, so mixing page deallocation and segments will make recovery corrupt data / segfault. 2009-07-13 17:18:01 +00:00
set.h Renamed / refactored operation implementation + registration functions. Added support for third party operations 2009-03-31 05:02:54 +00:00