#include <phlog_tornbit.h>
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_t * | nvmd |
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 |
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.
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().
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().
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().
number of times waited for asynchronous truncation
Definition at line 160 of file phlog_tornbit.h.
Referenced by m_phlog_tornbit_init().
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().
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().