libfoedus-core
FOEDUS Core Library
foedus::xct::PageVersionAccess Struct Reference

Represents a record of reading a page during a transaction. More...

Detailed Description

Represents a record of reading a page during a transaction.

This is similar to PointerAccess. The difference is that this remembers the PageVersion value we observed when we accessed the page. This can capture many more concurrency issues in the page because PageVersion contains many flags and counters. However, PageVersionAccess can't be used if the page itself might be swapped.

Both PointerAccess and PageVersionAccess can be considered as "node set" in [TU2013], but for a little bit different purpose.

POD
This is a POD struct. Default destructor/copy-constructor/assignment operator work fine.

Definition at line 72 of file xct_access.hpp.

#include <xct_access.hpp>

Collaboration diagram for foedus::xct::PageVersionAccess:

Public Attributes

const storage::PageVersionaddress_
 Address to the page version. More...
 
storage::PageVersionStatus observed_
 Value of the page version as of the access. More...
 

Friends

std::ostream & operator<< (std::ostream &o, const PageVersionAccess &v)
 

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o,
const PageVersionAccess v 
)
friend

Definition at line 38 of file xct_access.cpp.

38  {
39  o << "<PageVersionAccess><address>" << v.address_ << "</address>"
40  << "<observed>" << v.observed_ << "</observed></PageVersionAccess>";
41  return o;
42 }

Member Data Documentation

const storage::PageVersion* foedus::xct::PageVersionAccess::address_
storage::PageVersionStatus foedus::xct::PageVersionAccess::observed_

The documentation for this struct was generated from the following file: