m_phlog_tornbit_s Struct Reference

#include <phlog_tornbit.h>

List of all members.

Public Attributes

uint64_t buffer [CHUNK_SIZE/sizeof(uint64_t)]
uint64_t buffer_count
uint64_t write_remainder
uint64_t write_remainder_nbits
uint64_t read_remainder
uint64_t read_remainder_nbits
uint64_t * nvphlog
m_phlog_tornbit_nvmd_tnvmd
uint64_t head
uint64_t tail
uint64_t stable_tail
uint64_t read_index
uint64_t tornbit
uint64_t pad1 [8]
uint64_t stat_wait_for_trunc
uint64_t stat_wait_time_for_trunc


Detailed Description

The volatile representation of the physical log

To allow a consumer read metadata and values without locking we need to ensure that writes are atomic. x86 guarantees atomicity of word writes if the words are aligned. All fields are word-sized so that when the whole structure is word aligned, each field is word-aligned.

Definition at line 142 of file phlog_tornbit.h.


Member Data Documentation

uint64_t m_phlog_tornbit_s::buffer[CHUNK_SIZE/sizeof(uint64_t)]

software buffer to collect log writes till we form a complete chunk

Definition at line 143 of file phlog_tornbit.h.

Referenced by m_phlog_print_buffer().

uint64_t m_phlog_tornbit_s::buffer_count

number of valid words in the buffer

Definition at line 144 of file phlog_tornbit.h.

Referenced by m_phlog_print_buffer(), and m_phlog_tornbit_init().

m_phlog_tornbit_nvmd_t* m_phlog_tornbit_s::nvmd

points to the non-volatile metadata

Definition at line 150 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init(), and m_phlog_tornbit_truncate_async().

uint64_t* m_phlog_tornbit_s::nvphlog

points to the non-volatile physical log

Definition at line 149 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::pad1[8]

some padding to avoid having statistics in the same cacheline with metadata

Definition at line 159 of file phlog_tornbit.h.

uint64_t m_phlog_tornbit_s::read_remainder

the remainder bits after the decoding operation

Definition at line 147 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::read_remainder_nbits

number of the valid least-significant bits of the read_remainder buffer

Definition at line 148 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::stable_tail

data between head and stable_tail have been made persistent

Definition at line 153 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init(), m_tmlog_tornbit_recovery_do(), and m_tmlog_tornbit_recovery_init().

uint64_t m_phlog_tornbit_s::stat_wait_for_trunc

number of times waited for asynchronous truncation

Definition at line 160 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::stat_wait_time_for_trunc

total time waited for asynchronous truncation

Definition at line 161 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::write_remainder

the remainder bits after the encoding operation

Definition at line 145 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().

uint64_t m_phlog_tornbit_s::write_remainder_nbits

number of the valid least-significant bits of the write_remainder buffer

Definition at line 146 of file phlog_tornbit.h.

Referenced by m_phlog_tornbit_init().


The documentation for this struct was generated from the following file:
Generated on Sat Apr 23 11:43:36 2011 for Mnemosyne by  doxygen 1.4.7