|
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
10 namespace SWC {
namespace Ranger {
23 template<
typename ItemT,
int ErrorT>
40 bool loaded =
ptr->loaded(err);
47 loader->
error = ErrorT;
53 ptr->processing_decrement();
68 count_cs_blocks(0), count_fragments(0),
71 preload(block->blocks->range->cfg->log_fragment_preload()),
72 m_logs(0), m_cs_blks(1),
73 m_mutex(), m_cv(), m_queue(), m_f_selected(),
74 m_cs_selected(), m_cs_ready() {
88 Task(Task&& other) noexcept : ptr(other.ptr) { }
89 Task(
const Task&) =
delete;
181 m_cv.wait(lock_wait, [
this] {
return !
m_queue.empty(); });
186 bool is_final =
false;
189 if((is_final = vol ==
preload) && ptr) {
190 ptr->load_cells(
this);
205 }
else if(is_final) {
212 ptr->load_cells(
this);
void load_cells(BlockLoader *loader, bool &is_final, Vec &frags, uint8_t vol)
std::shared_ptr< Fragment > Ptr
virtual void load_cells(BlockLoader *loader)=0
CommitLog::Fragments::Vec m_f_selected
#define SWC_LOG_OUT(pr, _code_)
SWC_CAN_INLINE int64_t now_ns() noexcept
BlockLoader(Block::Ptr block)
std::queue< ReqQueue > q_req
void print(std::ostream &out)
LoadQueueItem & operator=(const LoadQueueItem &)=delete
void add(const ReqScan::Ptr &req)
void loaded(CellStore::Block::Read::Ptr &&blk)
CommitLog::Fragments commitlog
LoadQueueItem(ItemT &&a_ptr, size_t &a_counter) noexcept
std::condition_variable m_cv
LoadQueue(const LoadQueue &)=delete
static SWC_CAN_INLINE void block_loader_post(T_Handler &&handler)
The SWC-DB C++ namespace 'SWC'.
virtual ~LoadQueueItem() noexcept
BlockLoader & operator=(BlockLoader &&)=delete
LoadQueue(LoadQueue &&)=delete
LoadQueue & operator=(LoadQueue &&)=delete
CellStore::Readers cellstores
LoadQueueItem(const LoadQueueItem &)=delete
std::queue< LoadQueue * > m_queue
constexpr SWC_CAN_INLINE const_iterator cend() const noexcept
Core::Vector< CellStore::Block::Read::Ptr > m_cs_ready
virtual void load_cells(BlockLoader *loader) override
void load_cells(BlockLoader *loader)
virtual ~LoadQueue() noexcept
LoadQueueItem(LoadQueueItem &&)=delete
LoadQueue & operator=(const LoadQueue &)=delete
constexpr SWC_CAN_INLINE const_iterator cbegin() const noexcept
constexpr SWC_CAN_INLINE size_type size() const noexcept
std::queue< CellStore::Block::Read::Ptr > m_cs_selected
LoadQueueItem & operator=(LoadQueueItem &&)=delete
std::shared_ptr< ReqScan > Ptr