|
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.
7 #ifndef swcdb_ranger_db_Range_h
8 #define swcdb_ranger_db_Range_h
24 namespace SWC {
namespace Ranger {
27 class Range final :
public std::enable_shared_from_this<Range> {
68 std::
string get_path(const std::
string suff) const;
75 void set_rgr(
int &err) const noexcept;
87 void _get_interval(DB::Cell::Key& key_begin, DB::Cell::Key& key_end) const;
105 void state(
int& err) const;
109 void add(Callback::RangeQueryUpdate* req);
115 void load(const Callback::RangeLoad::Ptr& req);
123 void remove(const Callback::ColumnDelete::Ptr& req);
144 CellStore::
Writers& w_cellstores,
145 CommitLog::Fragments::Vec& fragments_old,
146 const Query::Update::BaseMeta::Ptr& hdlr=
nullptr);
149 const Query::Update::BaseMeta::Ptr& hdlr);
157 void check_meta(const Query::Select::CheckMeta::Ptr& hdlr);
159 void print(std::ostream& out,
bool minimal=true);
163 void last_rgr_chk(
int &err, const Callback::RangeLoad::Ptr& req);
165 void load(
int &err, const Callback::RangeLoad::Ptr& req);
167 void loaded(
int err, const Callback::RangeLoad::Ptr& req);
170 const Query::Update::BaseMeta::Ptr& hdlr,
171 const DB::Cell::Key* old_key_begin=
nullptr);
197 Core::QueuePointer<Callback::RangeQueryUpdate*>
m_q_add;
200 std::condition_variable_any
m_cv;
210 #endif //swcdb_ranger_db_Range_h
void apply_new(int &err, CellStore::Writers &w_cellstores, CommitLog::Fragments::Vec &fragments_old, const Query::Update::BaseMeta::Ptr &hdlr=nullptr)
std::string get_path_cs_on(const std::string folder, const csid_t csid) const
static constexpr const char CELLSTORES_RCVD_DIR[]
void add(Callback::RangeQueryUpdate *req)
void loaded(int err, const Callback::RangeLoad::Ptr &req)
Range(const ColumnCfg::Ptr &cfg, const rid_t rid)
void internal_take_ownership(int &err, const Callback::RangeLoad::Ptr &req)
static constexpr const char LOG_TMP_DIR[]
Core::QueueSafe< ReqScan::Ptr > m_q_scan
std::string get_path(const std::string suff) const
void expand_and_align(bool w_chg_chk, const Query::Update::BaseMeta::Ptr &hdlr)
static const uint8_t COMPACT_CHECKING
void remove_rgr(int &err) const noexcept
void check_meta(const Query::Select::CheckMeta::Ptr &hdlr)
void load(const Callback::RangeLoad::Ptr &req)
bool _is_any_begin() const
void schema_update(bool compact)
bool wait(uint8_t from_state=COMPACT_CHECKING, bool incr=false)
Core::Vector< Write::Ptr > Writers
Core::MutexAtomic m_mutex_intval_alignment
Core::QueuePointer< Callback::RangeQueryUpdate * > m_q_add
void internal_create_folders(int &err)
void scan(ReqScan::Ptr &&req)
void internal_create(int &err, const CellStore::Writers &w_cellstores)
static const uint8_t COMPACT_PREPARING
void get_interval(DB::Cells::Interval &interval)
The SWC-DB C++ namespace 'SWC'.
Core::Atomic< State > m_state
static constexpr const char CELLSTORES_BAK_DIR[]
void reset_load_revision()
void internal_remove(int &err)
DB::Cells::Interval m_interval
void print(std::ostream &out, bool minimal=true)
void last_rgr_chk(int &err, const Callback::RangeLoad::Ptr &req)
static constexpr const char CELLSTORES_TMP_DIR[]
uint24_t known_interval_count()
bool state_unloading() const noexcept
std::shared_mutex m_mutex
void internal_unload(bool completely, bool &chk_empty)
static const uint8_t COMPACT_NONE
std::string get_path_cs(const csid_t csid) const
void scan_internal(ReqScan::Ptr &&req)
static const uint8_t COMPACT_APPLYING
void on_change(bool removal, const Query::Update::BaseMeta::Ptr &hdlr, const DB::Cell::Key *old_key_begin=nullptr)
static const uint8_t COMPACT_COMPACTING
Core::MutexAtomic m_mutex_intval
Core::Atomic< int64_t > m_load_revision
void remove(const Callback::ColumnDelete::Ptr &req)
DB::Cell::Key prev_range_end
void set_rgr(int &err) const noexcept
void state(int &err) const
Core::AtomicBool m_require_compact
void compact_require(bool require)
bool compacting_ifnot_applying(uint8_t state)
void set_state(State new_state)
int64_t get_load_revision()
std::condition_variable_any m_cv
bool compact_possible(bool minor=true)
void _get_interval(DB::Cells::Interval &interval) const
Core::Atomic< uint32_t > m_adding
AtomicBase< bool > AtomicBool