Thomas Zimmermann •
Jun 1, 2017 • 13 min read
Transactional memcpy() and Resource Privatization
So far we have implemented a simple transaction manager
that loads and stores values in shared memory locations.
These load and store operations copy values in and out of the transactional
context. In this blog post we’re going to implement direct access to the
shared memory. We also lay the foundation for operations besides memory
access, such as function calls.
Read →
Thomas Zimmermann •
May 31, 2017 • Less than a minute read
picotm 0.2.0 released
Today I released version 0.2.0 of picotm, the system-level
transaction manager. Feature highlights of the new release are consistent
error reporting and much improved documentation with tutorials and interface
references.
Read →
Thomas Zimmermann •
May 26, 2017 • 14 min read
Transactional Access to Arbitrary Memory Locations
In this blog post we are going to implement transactional semantics for
arbitrary locations in main memory. So far our simpletm transaction manager
can only handle integer values that we store in a dedicated data structure.
At the end of this installment, we’ll be able to work with values of arbitrary
types that are located (almost) anywhere in memory.
Read →
Thomas Zimmermann •
May 19, 2017 • 13 min read
Writing the Beginning and End of a Transaction
Last time we finished our transaction manager and example
program simpletm to contain the minimum functionality for conflict detection
and transaction rollback. In this blog post we are going to separate
application logic and transaction logic from each other. We will move the
latter into a distinct module with a generic C interface for beginning and
committing transactions.
Read →
Thomas Zimmermann •
May 12, 2017 • 14 min read
Transaction Roll-Back and Serializability
In this blog post we’ll explore transaction roll-back code and briefly cover
serializability. We’ll build upon our
simple transaction manager and the
theoretical foundation we’ve discussed last time. At the end
of this post, we’ll have a simple, but correct transaction manager that can
be adapted to arbitrary work loads.
Read →