libfoedus-core
FOEDUS Core Library
foedus::snapshot::LogGleanerResource::PerNodeResource Struct Reference

These buffers are used to read intermediate results from each reducer to compose the root page or other kinds of pages that weren't composed in each reducer (eg. More...

Detailed Description

These buffers are used to read intermediate results from each reducer to compose the root page or other kinds of pages that weren't composed in each reducer (eg.

all intermediate nodes in hash storages). Such a post-composition work is also parallelized and pinned to the NUMA node, so we maintain soc_count buffers. The index is NUMA node. The size of individual buffers might automatically expand.

Definition at line 51 of file log_gleaner_resource.hpp.

#include <log_gleaner_resource.hpp>

Collaboration diagram for foedus::snapshot::LogGleanerResource::PerNodeResource:

Public Member Functions

 PerNodeResource (uint16_t numa_node)
 

Public Attributes

memory::AlignedMemory read_buffer_
 used for reading intermediate results frome each reducer. More...
 
memory::AlignedMemory write_buffer_
 used for writing out pages that have no children More...
 
memory::AlignedMemory write_intermediate_buffer_
 used for writing out pages that have children More...
 
const uint16_t numa_node_
 

Constructor & Destructor Documentation

foedus::snapshot::LogGleanerResource::PerNodeResource::PerNodeResource ( uint16_t  numa_node)
explicit

Definition at line 46 of file log_gleaner_resource.cpp.

References foedus::memory::AlignedMemory::alloc_onnode(), foedus::snapshot::LogGleanerResource::kReadBufferInitialSize, foedus::snapshot::LogGleanerResource::kWriteBufferInitialSize, foedus::snapshot::LogGleanerResource::kWriteBufferIntermediateInitialSize, read_buffer_, write_buffer_, and write_intermediate_buffer_.

47  : numa_node_(numa_node) {
50  1U << 21,
51  numa_node);
54  1U << 21,
55  numa_node);
58  1U << 21,
59  numa_node);
60 }
memory::AlignedMemory write_buffer_
used for writing out pages that have no children
memory::AlignedMemory read_buffer_
used for reading intermediate results frome each reducer.
memory::AlignedMemory write_intermediate_buffer_
used for writing out pages that have children
void alloc_onnode(uint64_t size, uint64_t alignment, int numa_node) noexcept
Short for alloc(kNumaAllocOnnode)

Here is the call graph for this function:

Member Data Documentation

const uint16_t foedus::snapshot::LogGleanerResource::PerNodeResource::numa_node_

Definition at line 60 of file log_gleaner_resource.hpp.

memory::AlignedMemory foedus::snapshot::LogGleanerResource::PerNodeResource::read_buffer_

used for reading intermediate results frome each reducer.

Definition at line 54 of file log_gleaner_resource.hpp.

Referenced by PerNodeResource().

memory::AlignedMemory foedus::snapshot::LogGleanerResource::PerNodeResource::write_buffer_

used for writing out pages that have no children

Definition at line 56 of file log_gleaner_resource.hpp.

Referenced by PerNodeResource().

memory::AlignedMemory foedus::snapshot::LogGleanerResource::PerNodeResource::write_intermediate_buffer_

used for writing out pages that have children

Definition at line 58 of file log_gleaner_resource.hpp.

Referenced by PerNodeResource().


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