#include <phlog_base.h>
Public Attributes | |
uint64_t | buffer [CHUNK_SIZE/sizeof(uint64_t)] |
uint64_t | buffer_count |
uint64_t * | nvphlog |
m_phlog_base_nvmd_t * | nvmd |
uint64_t | head |
uint64_t | tail |
uint64_t | read_index |
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 102 of file phlog_base.h.
uint64_t m_phlog_base_s::buffer[CHUNK_SIZE/sizeof(uint64_t)] |
software buffer to collect log writes till we form a complete chunk
Definition at line 103 of file phlog_base.h.
uint64_t m_phlog_base_s::buffer_count |
number of valid words in the buffer
Definition at line 104 of file phlog_base.h.
Referenced by m_phlog_base_init().
points to the non-volatile metadata
Definition at line 106 of file phlog_base.h.
Referenced by m_phlog_base_init(), and m_phlog_base_truncate_async().
uint64_t* m_phlog_base_s::nvphlog |
points to the non-volatile physical log
Definition at line 105 of file phlog_base.h.
Referenced by m_phlog_base_init().
uint64_t m_phlog_base_s::pad1[8] |
some padding to avoid having statistics in the same cacheline with metadata
Definition at line 112 of file phlog_base.h.
uint64_t m_phlog_base_s::stat_wait_for_trunc |
number of times waited for asynchronous truncation
Definition at line 113 of file phlog_base.h.
Referenced by m_phlog_base_init().
total time waited for asynchronous truncation
Definition at line 114 of file phlog_base.h.
Referenced by m_phlog_base_init().