Stasis is a flexible transactional storage library for high-performance applications and system developers. It supports concurrent transactional storage and no-FORCE/STEAL buffer management.
5ffd1110e9
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. |
||
---|---|---|
benchmarks | ||
blast | ||
cmake | ||
doc | ||
examples | ||
lang | ||
libdfa | ||
m4 | ||
pbl | ||
pobj | ||
src | ||
stasis | ||
test | ||
utilities | ||
.cproject | ||
.cvsignore | ||
.project | ||
AUTHORS | ||
bootstrap | ||
clean.sh | ||
CMakeLists.txt | ||
config.h.cmake | ||
configure.in.automake | ||
configure.in.lite | ||
COPYING | ||
CTestConfig.cmake | ||
INSTALL | ||
Makefile.am | ||
README | ||
reconf | ||
reconf-1.8 | ||
reconf-1.9 |
Stasis is a transactional storage library. Please see the COPYING file for licensing information, and INSTALL for compilation instructions. More information, including papers, a tutorial and API documentation are available at: http://www.cs.berkeley.edu/~sears/stasis/